Intel® oneAPI HPC Toolkit
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
1830 Discussions

Which logical core does MPI background threads are pinned?

seongyun_k_
Beginner
158 Views

I program in C++ which parallelizes using both MPI and OpenMP (1 MPI process per machine, Multiple threads are exploited by each MPI process)

I carefully pin the worker threads of OpenMP and others in my application. I know that MPI spawns some background threads for its internal uses. But I don't know to which logical cores the threads are attached.

How can I find and control it?

Thanks

0 Kudos
2 Replies
TimP
Black Belt
158 Views
I doubt there's an answer which holds for all mpi. Normally it's sufficient to pin your openmp threads 1 per core. In the special case of Mic knc you would likely want to leave core 0 open for mpss and mpi data moves.
Dmitry_S_Intel
Moderator
158 Views

For Intel(R) MPI Library is uses helper threads in cases of

- I_MPI_ASYNC_PROGRESS=enable (pinning controls for helper threads are I_MPI_ASYNC_PROGRESS_PIN)
https://software.intel.com/en-us/node/561772

- I_MPI_MT_MEMCPY=enable (MPI rank thread mask is used)
https://software.intel.com/en-us/node/528848

But additional helper threads may be created by lower level libraries (libfabric, PSM, etc)

--

Dmitry

Reply