Multiple Endpoints Support
The traditional MPI/OpenMP* threading model has certain performance issues. Thread
safe access to some MPI objects, such as requests or communicators, requires an
internal synchronization between threads; the performance of the typical hybrid
application, which uses MPI calls from several threads per rank, is often lower than
expected.
The PSM2 Multiple Endpoints (Multi-EP) support in the Intel® MPI Library makes it
possible to eliminate most of the cross-thread synchronization points in the MPI
workflow, at the cost of some limitations on what is allowed by the standard
MPI_THREAD_MULTIPLE
thread
support level. The Multi-EP support, implemented with MPI_THREAD_SPLIT
(thread-split) programming
model, implies several requirements to the application program code to meet, and
introduces a few runtime switches. These requirements, limitations, and usage rules
are discussed in the sections below.