Изменение количества процессоров при выполнении кода в параллельном программировании на основе MPI. - PullRequest
1 голос
/ 13 марта 2012

Я использую параллельное программирование на основе MPI в FORTRAN. Для запуска программы, например, 10 процессоров Я использую стандартную команду MPI

mpirun –n 10 имя_программы

Таким образом, программа будет выполняться на 10 процессорах от начала до конца, то есть число процессоров будет постоянным во время выполнения кода.

Мой вопрос заключается в том, можно ли изменить количество процессоров во время выполнения программы, например, чтобы начать с 2 процессоров, затем по некоторым критериям я хочу изменить количество процессоров на 4, затем на 6-10, и так далее.

Заранее спасибо.

1 Ответ

8 голосов
/ 13 марта 2012

MPI-2 поддерживает (приблизительно) этот вид операций, Google - документацию для mpi_comm_spawn и соответствующие подпрограммы.Я пишу приблизительно , потому что, строго говоря, MPI касается только процессов , а не процессоров .Изучите также документацию по подпрограмме mpi_comm_get_attr и предопределенной константе mpi_universe_size, которая обеспечивает связь между вашей программой и средой времени выполнения, чтобы выяснить, например, количество доступных процессов.

Вы можетеобнаружите, что система управления заданиями на вашем параллельном компьютере не позволяет программе захватывать больше процессоров во время ее работы.

Чего вы, скорее всего, захотите избежать, так это захватить, скажем, 10 процессоров для 10 процессов в начале выполнения вашей работы, а затем порождать еще 20 процессов для запуска на тех же 10 процессорах.

...