Abstract
When aiming for large-scale parallel computing, waiting time due to network latency, synchronization, and load imbalance are the primary opponents of high parallel efficiency. A common approach to hide latency with computation is the use of non-blocking communication. In the presence of a consistent load imbalance, synchronization cost is just the visible symptom of the load imbalance. Tasking approaches as in OpenMP, TBB, OmpSs, or C++20 coroutines promise to expose a higher degree of concurrency, which can be distributed on available execution units and significantly increase load balance. Available MPI non-blocking functionality does not integrate seamlessly into such tasking parallelization. In this work, we present a slim extension of the MPI interface to allow seamless integration of non-blocking communication with available concepts of asynchronous execution in OpenMP and C++. Using our concept allows to span task dependency graphs for asynchronous execution over the full distributed memory application. We furthermore investigate compile-time analysis necessary to transform an application using blocking MPI communication into an application integrating OpenMP tasks with our proposed MPI interface extension.
| Original language | English |
|---|---|
| Article number | 102859 |
| Journal | Parallel Computing |
| Volume | 109 |
| DOIs | |
| Publication status | Published - 1 Mar 2022 |
| Externally published | Yes |
Keywords
- Asynchronous communication
- Code transformation
- Hybrid parallelism
- Message Passing Interface
- OpenMP tasking
- Static analysis
Fingerprint
Dive into the research topics of 'MPI detach — Towards automatic asynchronous local completion'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver