Improving the Interoperability between MPI and Task-Based Programming Models
Kevin Sala, Jorge Bellón, Pau Farré, Xavier Teruel, J. M. PÉREZ, Antonio J. Peña, Daniel J. Holmes, Vicenç Beltrán, Jesús Labarta · 2018
In this paper we propose an API to pause and resume task execution depending on external events. We leverage this generic API to improve the interoperability between MPI synchronous communication primitives and tasks. When an MPI operation blocks, the task running is paused so that the runtime system can schedule a new task on the core that became idle. Once the MPI operation is completed, the paused task is put again on the runtime system's ready queue. We expose our proposal through a new MPI threading level which we implement through two approaches.