C 简单数据传输程序

C 简单数据传输程序,c,mpi,C,Mpi,我应该把一些整数从一个处理器发送到另一个处理器,这是在我大学的shell服务器上完成的 首先,我创建了我的解决方案代码,它看起来像(至少我这么认为…) 但后来仍然不知道该如何处理这对腻子qstatcomamnd似乎什么都没做。。。只有当qstat-Q或Q时,它才会显示一些“统计信息”,但到处都是0值。。。这是我在mpi的第一个程序,我真的一点都不懂 当我尝试运行我的程序时,我得到: 164900@halite:~$ ./transfer1 Fatal error in MPI_Send: Inv

我应该把一些整数从一个处理器发送到另一个处理器,这是在我大学的shell服务器上完成的

首先,我创建了我的解决方案代码,它看起来像(至少我这么认为…)

但后来仍然不知道该如何处理这对腻子<代码>qstatcomamnd似乎什么都没做。。。只有当
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

有人能解释一下如何在服务器上运行这个吗?

这里的示例代码运行良好,使用OpenMPI和GCC进行了测试

问题是,当您运行需要通过mpirun实例指定内核数量的代码时,您可能已经使用torque或您正在使用的任何调度器正确分配了它们,但您正在运行编译的代码,就好像它是串行的一样,您需要使用mpi和示例以及相关的输出来运行它

mpirun -np 2 ./example
Recived number = 1

对于不同的调度程序hydra、PBS或不同的MPI版本,您需要遵循与上面相同的模式,并针对您的MPI运行命令的内核数

哦,我找到了答案!我把答案写在#PBS-N cnt中,所以写在cnt文件或进程或其他东西中:P和pico这个cnt文件以得到结果:)
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
mpirun -np 2 ./example
Recived number = 1