У меня есть программа, распараллеленная с MPI, и я хочу использовать OpenMP внутри каждого процесса для создания потоков, чтобы ускорить некоторые вычисления. Когда я просто запускаю:
mpirun -np 2 ./executable
, я получаю 2 процесса на 2 отдельных ядрах (как и предполагалось). Но часть OMP с установленными 16 потоками также выполняется только на этих 2 ядрах, тогда как остальные 14 ядер простаивают.
Итак, я попытался назначить больше доступных процессоров:
mpirun --cpu-set 0-15 -np 2 ./executable
Таким образом, у меня действительно все 16 ядер используются для всех моих потоков, но проблема в том, что оба основных процесса запускается на одном ядре в начале ...
Каким будет правильный способ назначения отдельных ядер для каждого процесса при выполнении и последующего использования других ядер для многопоточной части?