在根处理器和其他处理器之间建立持续通信

时间:2019-09-06 15:47:23

标签: parallel-processing mpi

我手头上有一个简单的工作。假设我有一个从1到10([1,2,3 ...,10])的整数数组,并且可以使用三个处理器,其中一个是根处理器我在两个处理器之间分配数组,处理器1具有[1-5],处理器2具有[6-10]。我在相应范围内的两个处理器上运行循环,并在每次迭代后将数字发送到根

这是我试图实现的,显然可以看到该缺陷。

if(myrank==0)!i.e root
do j=1, 2(!no of processors)
call mpi_recv(i,1,mpi_int,j,1,mpi_comm_world,ierror)
end do
else
while(i<=5*myrank)
call mpi_send(i,1,mpi_int,0,1,mpi_comm_world,ierror)
i+=1

您可以很明显地看到该缺陷,当根从处理器1接收到整数后,它仅等待等待处理器2时,根仅打印1和6。保持while循环结构完好无损,我该如何实现相同的工作,该怎么做我一直保持根与处理器之间的通信吗?

0 个答案:

没有答案
相关问题