Hybrid applications: Intel MPI Library and OpenMP*

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.

For more complete information about compiler optimizations, see our Optimization Notice.

1 comment

Top

What if KMP_affinity is not set? OpenMP threads will not be pinned inside the domain?

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.