Hybrid applications: Intel MPI Library and OpenMP*

ID 659566
Updated 5/29/2019
Version Latest
Public

author-image

By

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

I_MPI_PIN_DOMAIN=omp

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.