OpenMPI:所有节点都作为节点 0 运行

Posted

技术标签:

【中文标题】OpenMPI:所有节点都作为节点 0 运行【英文标题】:OpenMPI: All nodes run as node 0 【发布时间】:2010-09-25 17:27:08 【问题描述】:

我有一个使用 openMPI 库在不同处理器之间传递消息的 c++ 程序。它是一个并行程序,它使用遗传算法为旅行商问题找到一个很好的解决方案。我正在尝试在我家的两台双处理器计算机上设置 MPI 环境,以便我可以运行它。 一年前我第一次创建这个程序时,我能够在不是我设置的集群上正常运行它。我现在遇到的问题是,每当我运行它时,所有进程都说它们的等级为 0。如果我有 3 个节点,而不是节点 1、2 和 3,它们都是节点 0。如果有人知道发生了什么,我肯定会感谢一些帮助。谢谢。

【问题讨论】:

也许您可以显示用于设置流程的命令/脚本是什么? 【参考方案1】:

也许你的初始化是错误的,或者你有一些错误检查排名。这应该是正确的做法:

MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("I am process %d of %d.\n", rank, size);

但我认为你做对了,所以我同意 Harleqin,显示你使用的命令/脚本会很有帮助。

【讨论】:

【参考方案2】:

我发现了问题所在。我安装了两个都使用 mpirun 命令的软件包。我相信它是 openmpi 和 mpich 包。我删除了 openmpi,它起作用了。

【讨论】:

以上是关于OpenMPI:所有节点都作为节点 0 运行的主要内容,如果未能解决你的问题,请参考以下文章

OpenMPI 中的动态节点

OpenMPI:简单的 2 节点设置

DCOM 和 OpenMPI

在 Windows 7 中使用 Open MPI 和 CUDA

MPI:每个节点打印日志

MPI:将每个实例固定到每个节点上的某些核心