132 练习 - 编写库

BACKWARD FORWARD


目标:使用私有通信子和属性

编写一个例程,通过使用非阻塞发送和接受操作,循环地将数据传送给下一个进程。

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_testMPI_Cartdim_get.


Copyright: NPACT BACKWARD FORWARD