我发现MPICH二进制文件可用于Windows和Linux。但是我不明白我是否可以为两个平台使用-n
开关指定的相同可执行文件,还是需要交叉编译我的可执行文件?
答案 0 :(得分:0)
尽管您可以交叉编译,但也许您可以考虑运行MPI应用程序,就好像它由不同的二进制文件组成(每个平台一个)。这样你就可以避免处理交叉编译以及处理所有的库。
要实现这一点,mpiexec [http://www.mpich.org/static/docs/v3.1/www1/mpiexec.html]允许您传递多个二进制文件(甚至每个平台一个),就好像您的应用程序是MPMD一样。
概要
mpiexec args executable pgmargs [ : args executable pgmargs ... ]
其中args是mpiexec的命令行参数(见下文),可执行文件是可执行MPI程序的名称,而pgmargs是 可执行文件的命令行参数。 可以使用多个可执行文件 使用冒号表示法指定(对于MPMD - 多程序 多个数据应用程序)。
因此,如果您想在 system1 上生成4个进程,在 system2 上生成4个进程,则可以使用以下命令:
mpiexec -np 4 -host <system1> <binary-system-1> <params> : -np 4 -host <system2> <binary-system-2> <params>