【发布时间】:2014-02-06 08:26:01
【问题描述】:
我是 MPI 新手,经常在 MPI 代码中看到以下代码:
if (rank == 0) {
MPI_Send(buf, len, MPI_CHAR, 1, 0, MPI_COMM_WORLD);
}
else {
MPI_Recv(buf, len, MPI_CHAR, 0, 0, MPI_COMM_WORLD, &status);
}
似乎排名决定了哪个进程正在发送和哪个进程正在接收。但
如何通过调用MPI_Comm_rank(MPI_COMM_WORLD, &rank); 确定进程的等级?
它与 mpirun 的命令行参数有关吗?
例如:
mpirun -n 2 -host localhost1,localhost2 ./a.out
(localhost1 是 0 级,localhost2 是 1 级?)
程序将如何确定谁是 0 级,谁是 1 级?
有没有办法让我指定诸如localhost1 正在发送而localhost2 正在接收?
【问题讨论】:
标签: mpi