1
MPI Interacon with all non-MPI components other than POSIX-like threads is implementaon-dependent. With the current interface the highest level of thread safety is difficult to implement without compromising performance. The proposed MPI endpoints for thread safety are a topic under discussion within the MPI forum. It proposes the introducon of a new communicator creaon funcon that creates a communicator with mulple ranks for each MPI process in a parent communicator. The INTERTWinE consorum has acvely contributed to the endpoints proposal. OpenMP OpenMP is a parallel applicaon program interface targeng Symmetric Mulprocessor systems which may also include accelerator devices like GPUs, DSPs orMICs architectures. OpenMPprograms mayusually use as well other parallel mathemacal libraries (e.g. Intel MKL). The proper use of the underlaying computaonal resources in these cases make the use of the Resource Manager highly recommendable. INTERTWinE will present the Resource Manager component to the OpenMP community. Potenally there will be no impact in the language but in their RTL implementaons. StarPU StarPU is a runme system which enables programmers to exploit CPUs and accelerator units available on a machine. StarPU supports serving data dependencies over MPI on distributed sessions. Each parcipang process is assumed to annotate data with node ownership, and to submit the same sequence of tasks. Each task is by default executed on the node where it accesses data in ‚write‘ mode. In the scope of INTERTWinE, strategies enabling fully multhreaded incoming messages processing, such as ‚endpoints‘ (MPI) or ‚noficaons‘ (GASPI) will be tested. StarPU will interface with the INTERTWinE resource manager and directory cache service. GASPI The Global Address Space Programming Interface (GASPI) is a specificaon of a communicaon API owned by the open GASPI forum. It defines asynchronous, single sided and non blocking communicaon primives for a Paroned Global Address Space (PGAS). Its implementaon GPI is interoperable with MPI and allows for incremental porng of exisng MPI applicaons. GASPI copies the parallel environment during its inializaon and this mechanism can be used to keep exisng toolchains, including distribuon and inializaon of the binaries. GASPI allows to access data that were allocated in the MPI program without addional copy. In the scope of INTERTWinE a closer memory and communicaon management of GASPI and MPI is envisaged. OmpSs OmpSs is a parallel programming model focused in exploing task-based parallelism for applicaons wrien in C, C++ or Fortran. OmpSs has also been extended to run in a mul-node cluster environment with a masterslave design, where one process acts as director of the execuon (master) and the rest of processes (slaves) follow the commands issued by the master. OmpSs will apply the resource manager and directory cache service of INTERTWinE. PaRSEC PaRSEC is a generic framework for architecture- aware scheduling and management of micro-tasks on distributed many-core heterogeneous architectures. The main benefits of PaRSEC are task parametrisaon and provision of architecture-aware scheduling. In the context of INTERTWinE, coexistence of PaRSEC-based numerical libraries (e.g. DPLASMA) with MPI applicaons will be invesgated. PaRSEC will also interface the INTERTWinE Resource Manager and experiment with the Directory Cache service. INTERTWinE: Programming Model INTERoperability ToWards INTERTWinE addresses the problem of programming model design and implementaon for the Exascale. The first Exascale computers will be very highly parallel systems, consisng of a hierarchy of architectural levels. To program such systems effecvely and portably, programming APIs with efficient and robust implementaons must be ready in the appropriate mescale. A single, “silver bullet” API which addresses all the architectural levels does not exist and seems very unlikely to emerge soon enough. We must therefore expect that using combinaons of different APIs at different system levels will be the only praccal soluon in the short to medium term. Although there remains room for improvement in individual programming models and their implementaons, the main challenges lie in interoperability between APIs both at the specificaon level and at the implementaon level. In addion to interoperability directed at specific API combinaons, INTERTWinE tackles interoperability on a more general level with the help of the directory cache service and the resource manager. Node 0 Node 1 Node 2 Node 3 Segment 0 Segment 0 Segment 0 Segment 0 Segment 1 Segment 1 Segment 1 Cache Cache Cache Cache Cache Cache Client Client Client Client Client Client Client Client Server GASPI, MPI, BeeGFS Original Data The envisaged directory/cache allows the task-based runme systems to efficiently run dis- tributed applicaons on top, while being able to consistently manage data stored in distribu- ted memory or in local caches. It relies on an API allowing the runmes (OmpSs, StarPU) to be completely independent from the physical representaon of data and from the type of sto- rage used. The directory/cache facilitates the access through the same interface to an exten- dable list of memory segment implementaons based on dif- ferent communicaon libraries (GASPI, MPI). The main goal of the INTERTWinE Resour- ce Manager is to coordinate access to CPUs and GPUs resources between different run- me systems and APIs to avoid both over- subscripon and undersubscripon situa- ons. To that end, we are developing three different APIs: The first one is the offloading API -based on OpenCL- that will be used to call parallel kernels (e.g. a piece of code writ- ten in OpenMP or StarPU) from one run- me system to another one. The second is the resource paroning API - also based on OpenCL- that will be used to indicate what specific CPUs can be used to execute a par- allel kernel. Finally, a cooperaon API will be provided so different runmes in the same process can lend and borrow CPUs between them when they are not using all the resour- ce or they need more resources respecvely. 0 1 2 3 4 5 Parallel applicaon Async parallel dgemm(...) Cooperaon between parallel runmes Directory Cache architecture To ensure interoperability between all six programming APIs featured in INTERTWinE (plus possibly also CUDA, OpenCL and MKL) one has to consider at least 15 API combinaons. To make such an approach more reasonable certain API combinaons have been priorized and will be main goal of interoperability efforts between the APIs and interoperability studies of the Co-design applicaons. A few combinaons like MPI / GASPI plus OmpSs / StarPU will be tackled with the help of the described directory cache service. Others like PLASMA plus OmpSs / StarPU, etc. will validate the resource manager funconality. The main remaining API combinaons studied in more detail are: MPI plus OpenMP and GASPI plus MPI. www.intertwine-project.eu/about-intertwine/co-design-applications Co-Design Apps Parallel Programming Models If you are interested in more informaon, and/or to sign up for the INTERTWinE newsleer : www.intertwine-project.eu and read our TWITTER feeds: @intertwine_eu The project is funded by the European Commission (grant agreement number: 671602). Priorized API combinaons D i r e c t o r y C a c h e A P I c o m b i n a o n s R e s o u r c e M an a g e m e n t INTER- OPERABILTY The goal of the Co-design applicaons is to provide a set of applicaons/kernels and design benchmarks to permit the exploraon of interoperability issues. The applicaons evaluate the enhancements to programming model APIs and runme implementaons and feedback their experience to the Resource Manager and Directory Cache service. Some preliminary studies and first recommendaons to the programming model APIs are sketched. Directory Cache Resource Manager

INTERTWinE: Programming Model INTERoperability ToWards · The INTERTWinE consorti um has acti vely contributed to the endpoints proposal. OpenMP OpenMP is a parallel applicati on

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTERTWinE: Programming Model INTERoperability ToWards · The INTERTWinE consorti um has acti vely contributed to the endpoints proposal. OpenMP OpenMP is a parallel applicati on

MPI

Interacti on with all non-MPI components other than POSIX-like threads is implementati on-dependent. With the current interface the highest level of thread safety is diffi cult to implement without compromising performance. The proposed MPI endpoints for thread safety are a topic under discussion within the MPI forum. It proposes the introducti on of a new communicator creati on functi on that creates a communicator with multi ple ranks for each MPI process in a parent communicator. The INTERTWinE consorti um has acti vely contributed to the endpoints proposal.

OpenMPOpenMP is a parallel applicati on program interface targeti ng Symmetric Multi processor systems which may also include accelerator devices like GPUs, DSPs or MICs architectures. OpenMP programs may usually use as well other parallel mathemati cal libraries (e.g. Intel MKL). The proper use of the underlaying computati onal resources in these cases make the use of the Resource Manager highly recommendable. INTERTWinE will present the Resource Manager component to the OpenMP community. Potenti ally there will be no impact in the language but in their RTL implementati ons.

StarPU

StarPU is a runti me system which enables programmers to exploit CPUs and accelerator units available on a machine. StarPU supports serving data dependencies over MPI on distributed sessions. Each parti cipati ng process is assumed to annotate data with node ownership, and to submit the same sequence of tasks. Each task is by default executed on the node where it accesses data in ‚write‘ mode. In the scope of INTERTWinE, strategies enabling fully multi threaded incoming messages processing, such as ‚endpoints‘ (MPI) or ‚noti fi cati ons‘ (GASPI) will be tested. StarPU will interface with the INTERTWinE resource manager and directory cache service.

GASPI The Global Address Space Programming Interface (GASPI) is a specifi cati on of a

communicati on API owned by the open GASPI forum. It defi nes asynchronous, single sided and non blocking communicati on primiti ves for a Parti ti oned

Global Address Space (PGAS). Its implementati on GPI is interoperable with MPI and allows for incremental porti ng of existi ng MPI

applicati ons. GASPI copies the parallel environment during its initi alizati on and this mechanism can be used to keep existi ng

toolchains, including distributi on and initi alizati on of the binaries. GASPI allows to access data that were allocated

in the MPI program without additi onal copy. In the scope of INTERTWinE a closer memory and communicati on

management of GASPI and MPI is envisaged.

OmpSsOmpSs is a parallel programming model focused in exploiti ng task-based parallelism for applicati ons writt en in C, C++ or Fortran. OmpSs has also been extended to run in a multi -node cluster environment with a masterslave design, where one process acts as director of the executi on (master) and the rest of processes (slaves) follow the commands issued by the master. OmpSs will apply the resource manager and directory cache service of INTERTWinE.

PaRSEC PaRSEC is a generic framework for architecture-

aware scheduling and management of micro-tasks on distributed many-core heterogeneous architectures.

The main benefi ts of PaRSEC are task parametrisati on and provision of architecture-aware scheduling. In the

context of INTERTWinE, coexistence of PaRSEC-based numerical libraries (e.g. DPLASMA) with MPI applicati ons will

be investi gated. PaRSEC will also interface the INTERTWinE Resource Manager and experiment with the Directory Cache

service.

INTERTWinE: Programming Model INTERoperability ToWards INTERTWinE addresses the problem of programming model design and implementati on for the Exascale. The fi rst Exascale computers will be very highly parallel systems, consisti ng of a hierarchy of architectural levels. To program such systems eff ecti vely and portably, programming APIs with effi cient and robust implementati ons must be ready in the appropriate ti mescale. A single, “silver bullet” API which addresses all the architectural levels does not exist and seems very unlikely to emerge soon enough. We must therefore expect that using combinati ons of diff erent APIs at diff erent system levels will be the only practi cal soluti on in the short to medium term. Although there remains room for improvement in individual programming models and their implementati ons, the main challenges lie in interoperability between APIs both at the specifi cati on level and at the implementati on level. In additi on to interoperability directed at specifi c API combinati ons, INTERTWinE tackles interoperability on a more general level with the help of the directory cache service and the resource manager.

Node 0 Node 1 Node 2 Node 3

Segment 0 Segment 0 Segment 0 Segment 0

Segment 1 Segment 1 Segment 1

Cache Cache Cache Cache

CacheCache

Client

Client

Client

Client

Client

Client

ClientClient

Server

GASPI,MPI,

BeeGFS

OriginalData

The envisaged directory/cache allows the task-based runti me systems to effi ciently run dis-tributed applicati ons on top, while being able to consistently manage data stored in distribu-ted memory or in local caches. It relies on an API allowing the runti mes (OmpSs, StarPU) to be completely independent from the physical representati on of data and from the type of sto-rage used. The directory/cache facilitates the access through the same interface to an exten-dable list of memory segment implementati ons based on dif-ferent communicati on libraries (GASPI, MPI).

The main goal of the INTERTWinE Resour-ce Manager is to coordinate access to CPUs and GPUs resources between diff erent run-ti me systems and APIs to avoid both over-subscripti on and undersubscripti on situa-ti ons. To that end, we are developing three diff erent APIs: The fi rst one is the offl oading API -based on OpenCL- that will be used to call parallel kernels (e.g. a piece of code writ-ten in OpenMP or StarPU) from one run-ti me system to another one. The second is the resource parti ti oning API - also based on OpenCL- that will be used to indicate what specifi c CPUs can be used to execute a par-allel kernel. Finally, a cooperati on API will be provided so diff erent runti mes in the same process can lend and borrow CPUs between them when they are not using all the resour-ce or they need more resources respecti vely.

0 1 2 3 4 5

Parallelapplicati on

Async parallel dgemm(...)

Cooperati on between parallel runti mesDirectory Cache architecture

To ensure interoperability between all six programming APIs featured in INTERTWinE (plus possibly also CUDA, OpenCL and MKL) one has to consider at least 15 API combinati ons. To make such an approach more reasonable certain API combinati ons have been prioriti zed and will be main goal of interoperability eff orts between the APIs and interoperability studies of the Co-design applicati ons. A few combinati ons like MPI / GASPI plus OmpSs / StarPU will be tackled with the help of the described directory cache service. Others like PLASMA plus OmpSs / StarPU, etc. will validate the resource manager functi onality. The main remaining API combinati ons studied in more detail are: MPI plus OpenMP and GASPI plus MPI.

www.intertwine-project.eu/about-intertwine/co-design-applications

Co-Design Apps

Parallel Programming Models

If you are interested in more informati on, and/or to sign up for the INTERTWinE newslett er : www.intertwine-project.euand read our TWITTER feeds: @intertwine_eu

The project is funded by the European Commission (grant agreement number: 671602).

Prioriti zed API combinati ons

Dire

ctor

y Cache API com

binati ons

Resource Management

INTER-

OPERABILTY

The goal of the Co-design applicati ons is to provide a set of applicati ons/kernels and design benchmarks to permit the explorati on of interoperability issues. The applicati ons evaluate the enhancements to programming model APIs and runti me implementati ons and feedback their experience to the Resource Manager and Directory Cache service. Some preliminary studies and fi rst recommendati ons to the programming model APIs are sketched.

Directory Cache Resource Manager