96 更多的有关非阻塞通信 |
在应用程序中,在进程之间发送数据的时间是很大的地方,经常产生计算和通信相重叠是有益的。
例如,在一个2D有限微分网格中,需要为边界而移动数据可以在计算内部的同时进行工作。
MPI_Irecv( ... each ghost edge ... ); MPI_Isend( ... data for each ghost edge ... ); ... compute on interior while (still some uncompleted requests) { MPI_Waitany( ... requests ... ) if (request is a receive) ... compute on that edge ... }
注意我们几次调用MPI-Waitany。这展示了这样一个事实,在一个请求满足后,它设置为MPI-REQUEST-NULL,这是一个有效的请求对象以等待和测试例程。
Copyright: NPACT |