MPI Multiply Threads - Hui Zhou
Presenter: Hui Zhou (Principal Research Software Engineer, Argonne National Laboratory) Presented June 6, 2023 at the PETSc Annual Meeting (https://petsc.org/release/community/meetings/2023/) Slides: https://petsc.gitlab.io/annual-meetings/2023/slides/HuiZhou.pdf Abstract: In the traditional MPI+Thread programming paradigm, MPI and OpenMP each form their own parallelization. MPI is unaware of the thread context. The requirement of thread safety and message ordering forces MPI library to blindly add critical sections, unnecessarily serializing the code. On the other hand, OpenMP cannot use MPI for inter-thread communications. Developers often need hand-roll algorithms for collective operations and non-blocking synchronizations. MPICH recently added a few extensions to address the root issues in MPI+Thread. The first extension, MPIX stream, allows applications to explicitly pass the thread context into MPI. The second extension, thread communicator, allows individual threads in an OpenMP parallel region to use MPI for inter-thread communications. In particular, this allows an OpenMP program to use PETSc within a parallel region. Instead of MPI+Thread, we refer to this new pattern as MPI x Thread.
Download
0 formatsNo download links available.