6.5.6 笛卡尔结构的划分

BACKWARD FORWARD


MPI_CART_SUB(comm, remain_dims, newcomm)

int MPI_Cart_sub(MPI_Comm com, int *remain_dims, MPI_Comm *newcomm)

MPI_CART_SUB(COMM, REMAIN_DIMS, NEWCOMM, IERROR)

如果一个笛卡尔拓扑已经用MPI_CART_CREATE产生,函数MPI_CART_SUB可以用于将通信子的组划分成子组,以形成更低维的笛卡尔子网格,并且为每一子组建立与其相联系的子网格笛卡尔拓扑的通信子。(这个函数完全相关于函数MPI_COMM_SPLIT)

例6.5假设 MPI_CART_CREATE(..., comm)已定义了一个(2×3×4)的网格。设remain_dims = (false, false, true)。那么调用

将产生三个通信子, 每一个通信子在2×4笛卡尔拓扑中带有八个进程。如果remain_dims = (false, false, true),那么对MPI_CART_SUB(comm, remain_dims, comm_new)的调用将产生六个不重叠的通信子, 每一个在一维笛卡尔拓扑中带有四个进程。


Copyright: NPACT BACKWARD FORWARD