我应该从一个处理器向另一个处理器发送一些整数,这将在我大学的 shell 服务器上完成......
首先我创建了我的解决方案代码,它看起来像(至少我是这么认为的......)
#include <stdio.h>
#include <mpi.h>
int main(int argc, char **argv)
{
int currentRank = -1;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, ¤tRank);
if(currentRank == 0) {
int numberToSend = 1;
MPI_Send(&numberToSend , 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
}
else if(currentRank == 1) {
int recivedNumber;
MPI_Recv(&recivedNumber, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Recived number = %d\n", recivedNumber);
}
MPI_Finalize();
return 0;
}
比我应该创建一些 name.pbs 文件...并运行它。而且我不明白如何指定这个处理器数量......我尝试如下:
#PBS -l nodes=2:ppn=2
#PBS -N cnt
#PBS -j oe
mpiexec ~/mpi1
但后来仍然不知道如何处理腻子。qstat
comamnd 似乎什么都不做……只有当qstat -Q
它q
向我显示一些“统计数据”但到处都是 0 值时……这是我在 mpi 中的第一个程序,我真的一点也不明白……
当我尝试运行我的程序时,我得到:
164900@halite:~$ ./transfer1
Fatal error in MPI_Send: Invalid rank, error stack:
MPI_Send(174): MPI_Send(buf=0x7fffd28ec640, count=1, MPI_INT, dest=1, tag=0, MPI_COMM_WORLD) failed
MPI_Send(99).: Invalid rank has value 1 but must be nonnegative and less than 1
谁能解释我如何在服务器上运行它?