Как использовать MPI_Info_set с MPI_Comm_spawn в MPICH - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно использовать MPI spawn на кластере.Для этого я понял, что мне нужно использовать MPI_Info_set для указания узлов, которые будут запускать порожденные процессы.Я пробовал MPI_Info_set(info, "add-host","node1,node2"), но он не работает.

Ниже я приведу небольшой пример кода порождения:

MPI_Info info;
MPI_Info_create(&info);
MPI_Info_set(info,"add-host","node1,node2");
MPI_Comm_spawn("./mpiworker", MPI_ARGV_NULL,
               dynamic_procs,
               info, 0, MPI_COMM_WORLD,
               &intercomm,
               MPI_ERRCODES_IGNORE);

Есть ли что-нибудь еще, что я могу использовать?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это сработало для меня, а не просто MPI_Comm_spawn.Следующий код создаст 1 процесс на узел.Я мог бы породить больше процессов на узел, расширив размер входов ниже.

MPI_Info info[2];

MPI_Info_create(&info[0]);
MPI_Info_set(info[0],"host","node1");

MPI_Info_create(&info[1]);
MPI_Info_set(info[1],"host","node2");

char *cmds[2] = { "./mpiworker", "./mpiworker" };
int np[2] = { 1, 1 };
int errcodes[2];

MPI_Comm_spawn_multiple( 2, cmds, MPI_ARGVS_NULL, np, info, 0, MPI_COMM_WORLD, &intercomm, errcodes );

//Below parallel code follows
...

Выше было проверено на Ubuntu-bionic с MPICH Версия: 3.3a2.

Мой пример основан на следующей странице ,Если я найду более элегантный способ, я сделаю репост.

0 голосов
/ 21 февраля 2019

Параметр add-host происходит, вероятно, из OpenMPI ( man-страница ) и не поддерживается в MPICH.

Для MPICH попробуйте один из них:

  • host - работает для меня,
  • hosts - должно работать, однако, похоже, что он не работает в версии, которую я сейчас использую, и MPI порождает все процессы на первом узле, переданном в качестве значения параметра;если это также происходит в вашем случае, я предлагаю ручное назначение хостов для каждого процесса, используя MPI_Comm_spawn_multiple.

Кроме того, я не знаю, как найти список всех поддерживаемых параметров - я думаю, MPICHребята, не обращайте особого внимания на ведение документации.

...