132 练习 - 编写库 |
目标:使用私有通信子和属性
编写一个例程,通过使用非阻塞发送和接受操作,循环地将数据传送给下一个进程。
void Init_pipe( comm )
void ISend_pipe( comm, bufin, len, datatype, bufout )
void Wait_pipe( comm )
典型地使用为
Init_pipe( MPI_COMM_WORLD )
for (i=0; i<n; i++) {
ISend_pipe( comm, bufin, len, datatype, bufout );
Do_Work( bufin, len );
Wait_pipe( comm );
t = bufin; bufin = bufout; bufout = t;
}
如果Do_Work调用MPI例程,会发生什么?
你需要做什么以清除Init_pipe?
你怎样使用用户定义的拓扑来决定下一个进程?(暗示:见MPI_Topo_test
和MPI_Cartdim_get.)
Copyright: NPACT |