【发布时间】:2015-10-28 06:42:24
【问题描述】:
超级编辑:
添加广播步骤,将导致ncols 被主节点的两个进程打印(我可以从中检查输出)。但为什么?我的意思是,所有广播的变量在它们的声明行中已经有一个值!!! (题外话image)。
我有一些基于此example 的代码。
我用这个简单的程序检查了集群配置是否正常,它也是它将运行到的机器的printed the IP:
int main (int argc, char *argv[])
{
int rank, size;
MPI_Init (&argc, &argv); /* starts MPI */
MPI_Comm_rank (MPI_COMM_WORLD, &rank); /* get current process id */
MPI_Comm_size (MPI_COMM_WORLD, &size); /* get number of processes */
printf( "Hello world from process %d of %d\n", rank, size );
// removed code that printed IP address
MPI_Finalize();
return 0;
}
将每台机器的 IP 打印两次。
EDIT_2
如果我(仅)打印网格,如示例中所示,我将获得一台计算机:
Processes grid pattern:
0 1
2 3
两个人:
Processes grid pattern:
【问题讨论】:
-
不幸的是,我不熟悉 BLACS。您可以尝试提炼一个显示您的问题的最小示例吗?例如,我们不知道
init做了什么,所以问题可能就藏在那里了。 -
@mort 我更新了,现在读者都清楚了!
-
能否在两个节点上运行一个简单的 MPI ping pong 测试来验证 MPI 是否配置正确。如果您使用的是英特尔 MPI,则应该有一组称为 IMB 的 MPI 基准测试,其中包含测试以及其他几个测试。这些测试是确保 MPI 在两个节点上正常工作的好方法。
-
@Matt,检查我的编辑。我正在使用 MPICH2。配置没问题。
标签: c++ mpi cluster-computing mpich barrier