7

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

4

2 回答 2

3

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

于 2008-12-11T02:30:50.367 回答
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,显示你使用的命令/脚本会很有帮助。

于 2008-12-08T08:28:42.127 回答