6.4 函数概括

BACKWARD FORWARD


MPI_GRAPH_CREATE和MPI_CART_CREATE函数分别用于产生通常(图)的虚拟拓扑和笛卡尔拓扑。 这些拓扑产生函数是集合的(collective)。象其它集合调用一样,所写的程序必须正确工作, 无论调用是否同步。

拓扑产生函数以现存的COMM_OLD通信子为输入, 这种通信子定义了拓扑所要映射的一组进程。产生一个新的通信子COMM_TOPOL,作为缓冲信息,用以携带拓扑结构(见第五章)。 与MPI_COMM_CREATE相似, 没有缓存信息从COMM_OLD传播到COMM—TOPOL。

MPI_CART_CREATE用于描述任意维的笛卡尔结构。对于每一坐标方向,说明进程结构是否是周期性的。注意一个N维超立方体是一个每一坐标方向带有2个进程的N维圆环。因此不必要专门支持超立方体结构。逻辑辅助函数MPI_DIMS_CREATE用于计算给定维数的平衡的进程分布。

函数MPI_TOPO_TEST用于查寻与某一通信子相关联的拓扑。对于通常的图,用函数MPI_GRAPHDIMS_GET和MPI_GRAPH_GET从通信子中提取拓扑信息, 对于笛卡尔拓扑,则用MPI_CARTDIM_GET和MPI_CART_GET函数。几个附加的函数用于操纵笛卡尔拓扑: 函数MPI_CART_RANK和MPI_CART_COORDS将笛卡尔坐标翻译成一组标识数, 反之依然; 函数MPI_CART_SUB用于提取笛卡尔子空间(类似MPI_COMM_SPLIT)。函数MPI_CART_SHIF提供信息,用以与笛卡尔维中的邻居通信。两个函数MPI_GRAPH_NEIGHBORS-_COUNT和MPI_GRAPH_NEIGHBORS用于提取图中某一结点的邻居。函数MPI_CART_SUB 集合于输入通信子的组; 所有其它函数是局域的。

两个附加函数, MPI_GRAPH_MAP和MPI_CART_MAP在最后的章节中提出。一般地, 用户不直接调用这些函数。然而, 与第五章所提的通信子操纵函数一起, 它们足够实现所有的其它拓扑函数。6.5.7节概括了这种实现。


Copyright: NPACT BACKWARD FORWARD