我正在使用MPI在异构计算系统上执行并行作业。我的网络中的节点并不完全相同。
我想指定机器'A.univ.edu‘的等级为0,机器'B.univ.edu’的等级为1。
有没有办法指定如何在MPI中为主机分配等级?
发布于 2012-09-08 02:54:50
看起来至少OpenMPI允许您指定一个rankfile
上面的例子如下
rankfile.txt:
rank 0=A.univ.edu slot=0
rank 1=B.univ.edu slot=0
mpiexec -np 2 -H A.univ.edu,B.univ.edu -rf rankfile.txt executable.exehttp://mirror.its.dal.ca/openmpi/doc/v1.5/man1/mpiexec.1.php#sect9
发布于 2012-09-08 20:57:55
如果所有其他方法都失败了,您始终可以使用MPI_Comm_split创建一个新的通信器,在该通信器中,您的所有进程都具有所需的等级。在每个进程确定其预期的等级(例如,存储在newRank中)之后,对MPI_Comm_split(MPI_COMM_WORLD, 0, newRank, newComm)的调用将在newComm中创建一个具有正确顺序的通信器。然后,您可以在所有通信调用中使用该通信器而不是MPI_COMM_WORLD。
发布于 2018-05-09 07:27:30
您可以使用"-rank-by node“开关。这将导致以指定主机的顺序映射进程。
https://stackoverflow.com/questions/12319760
复制相似问题