c ++ mpi非阻塞与阻止发送

时间:2016-05-16 12:58:40

标签: c++ mpi

if(rank==0) {
   for(ei=1;ei<NCORES;ei++) {
      buf=&bufsnd[displs[ei]];
      rc=MPI_Send (buf,lenrec,MPI_BYTE,ei,1,MPI_COMM_WORLD);
    //rc=MPI_Isend(buf,lenrec,MPI_BYTE,ei,1,MPI_COMM_WORLD,&req);
}
if(rank!=0)
   rc=MPI_Recv (bufrec,lenrec,MPI_BYTE,0,1,MPI_COMM_WORLD,&stat);

大家好,我正在使用上面的说明来分发不同进程要处理的数据。进程0具有数据并将它们发送到所有其他进程。发送后,它开始处理自己的数据部分。我已经尝试了Send和Isend,奇怪的是,Send的执行速度要快得多,而我希望Isend的速度更快,因为在这种情况下,master不会等到第i次发送完成之前执行第(i + 1)次发送,所有发送应同时发生。关于什么是错的任何想法?

0 个答案:

没有答案