I have a mixed application which uses both MPI and OpenMP* calls. Does the Intel® MPI Library support this type of hybrid functionality?
Yes, Intel MPI does support mixed MPI/OpenMP applications. Intel MPI is thread-safe as of version 2019, and defaults to the thread-safe library in the 2018 version.
Ensure that you are setting pinning optimally for your program. In general for OpenMP, it is recommended to set
This will pin ranks to domains sized by OMP_NUM_THREADS. All threads within a rank will be pinned within the domain based on KMP_AFFINITY settings. More details on pinning are available in the Intel® MPI Library Interoperability with OpenMP section.
Intel MPI 2019 implements a new feature known as Multi-EndPoint (MEP). MEP enables more efficient utilization of MPI calls from multiple threads. Please read through Multiple Endpoints Support for additional details including how to use MEP.