6.5 拓扑构造子 |
MPI_CART_CREATE(comm_old, ndims, dims, periods, reorder, comm_cart)
IN comm_old 输入通信子(句柄)
IN ndims 笛卡尔网格的维数(整数)
IN dims 大小为ndims的整数矩阵,说明了每一维的进程数
IN periods 大小为ndims的逻辑矩阵,说明了在每一维上网格是否是周期性 的(true)或非周期性的(false)
IN reorder 标识数可以重排序(true)或不能(false)(logical)
OUT comm_cart 带有新的笛卡尔拓扑的通信子(handle)
int MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods,
int reorder, MPI_Comm *comm_cart)
MPI_CART_CREATE(COMM_OLD, NDIMS, DIMS, PERIODS, REORDER, COMM_CART, IERROR)
INTEGER COMM_OLD, NDIMS, DIMS(*), COMM_CART, IERROR
LOGICAL PERIODS(*), REORDER
MPI_CART_CREATE返回一个指向新的通信子的句柄, 这个句柄与笛卡尔拓扑信息相联系。如果reorder = false, 那么在新组中每一进程的标识数就与在旧组中的标识数相一致。否则, 函数会重新对进程编号(也许会选择一个好的将虚拟拓扑嵌入到物理机器的方法)。如果笛卡尔网格的总尺寸小于COMM组的大小, 那么有些进程返回的MPI_COMM_NULL, 类似MPI_COMM_SPLIT。如果说明的网格大于组的尺寸, 调用出错。
Copyright: NPACT |