Поддерживает ли MPICH кроссплатформенное исполнение?
Я обнаружил, что двоичные файлы MPICH доступны как для Windows, так и для Linux. Однако я не понял, могу ли я использовать тот же исполняемый файл, который указан -n
переключиться на обе платформы или мне нужно кросс-компилировать мои исполняемые файлы?
1 ответ
Несмотря на то, что вы можете кросс-компилировать, возможно, вы можете рассмотреть возможность запуска приложения MPI, как если бы оно составлено из разных двоичных файлов (по одному на платформу). Таким образом, вы можете избежать кросс-компиляции и работы со всеми библиотеками.
Для этого mpiexec [ http://www.mpich.org/static/docs/v3.1/www1/mpiexec.html] позволяет передавать несколько двоичных файлов (даже по одному на платформу), как если бы ваше приложение было MPMD.
конспект
mpiexec args executable pgmargs [ : args executable pgmargs ... ]
где аргументы - это аргументы командной строки для mpiexec (см. ниже), исполняемый файл - это имя исполняемой программы MPI, а pgmargs - аргументы командной строки для исполняемого файла. Несколько исполняемых файлов можно указать с помощью двоеточия (для MPMD - приложения с несколькими программами и несколькими данными).
Поэтому, если вы хотите порождать 4 процесса в system1 и 4 процесса в system2, вы можете использовать следующую команду:
mpiexec -np 4 -host <system1> <binary-system-1> <params> : -np 4 -host <system2> <binary-system-2> <params>