Рефакторинг кода MPI для вызова из другого кода MPI - PullRequest
0 голосов
/ 06 мая 2018

У меня есть две программы Main и Aux, каждая из которых использует MPI для параллельной обработки. Я оставляю Main в качестве основного кода и изменяю Aux как подпрограмму, которую вызывает Main.

Проблема возникает, когда оба кода инициируют процесс MPI, а затем каждый имеет свою собственную параллельную структуру, что приводит к сбою кода.

Любые предложения о том, как начать это исправлять?

PS: при соединении двух кодов я решил вызвать Aux по Main, а не запускать Aux как исполняемый по Main, чтобы иметь более оптимизированные и надежные настройки, а также избежать накладных расходов.

PS2: Code Main написан на c ++, а код Aux написан на Fortran.

1 Ответ

0 голосов
/ 06 июня 2018

Трудно сказать наверняка, не глядя на код, но я считаю, что вы хотите использовать два разных MPI-коммуникатора, по одному для каждой из программ, см. http://mpitutorial.com/tutorials/introduction-to-groups-and-communicators/

...