我有一个c ++程序,它使用openMPI库在不同的处理器之间传递消息.它是一个并行程序,使用遗传算法为旅行销售人员问题找到一个很好的解决方案.我正试图在我家的两台双处理器计算机上设置MPI环境,以便我可以运行它.当我一年前第一次创建这个程序时,我能够在我没有设置的集群上运行它.我现在遇到的问题是,每当我运行它时,所有进程都说它们的等级为0.如果我有3个节点,而不是节点1,2和3,则它们都是节点0.如果有人知道发生了什么,我一定会感激一些帮助.谢谢.
也许你的初始化是错误的,或者你在检查排名时出现了一些错误。这应该是执行此操作的正确方法:
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);
Run Code Online (Sandbox Code Playgroud)
但我认为你做得对,所以我同意 Harleqin 的观点,显示你使用的命令/脚本会很有帮助。