Назначение Xeon-Phi процессу MPI
Моя система имеет две карты xeon-phi, подключенные к одному узлу. Я пытаюсь запустить распределенный код MPI, который использует ускорение xeon-phi в режиме разгрузки. Мне интересно, если я запускаю два процесса MPI на узел, как бы я назначил xeon-phi для каждого процесса MPI. Как я могу убедиться, что каждый процесс MPI использует разные MIC.
1 ответ
int rank;
...
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
...
#pragma offload target(mic:rank)
{
//offloaded code
}
Итак, идея состоит в том, чтобы получить номер ранга MPI, а затем использовать его для назначения разгрузки конкретному устройству MIC. Если у вас будет более 2 процессов MPI, эту конструкцию все еще можно использовать, но вам нужно назначить два соседних процесса MPI одному и тому же хосту.