我有一个使用openMPI库在不同处理器之间传递消息的c ++程序。它是一个并行程序,使用遗传算法为旅行销售人员问题找到一个很好的解决方案。我正试图在我家的两台双处理器计算机上设置MPI环境,以便我可以运行它。 当我一年前第一次创建这个程序时,我能够在我没有设置的集群上运行它。我现在遇到的问题是,每当我运行它时,所有进程都说它们的等级为0.如果我有3个节点,而不是节点1,2和3,则它们都是节点0。如果有人知道发生了什么,我一定会感激一些帮助。感谢。
答案 0 :(得分:3)
我发现了问题所在。我安装了两个包都使用了mpirun命令。我相信这是openmpi和mpich包。我删除了openmpi并且工作正常。
答案 1 :(得分: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,显示你使用的命令/脚本会有所帮助。