在上一篇中我们介绍了 mpi4py 中的组管理 API, 下面我们将介绍通信子管理 API。
访问通信子信息的操作属于本地操作,即其不需要在整个通信子范围内进行全局通信,但创建通信子的操作必须使用全局信息,因此要发生进程间通信。
通信子的创建和取消
MPI.Comm.Create(self, Group group)
在已有通信子 comm 环境下,利用 group
组创建新的通信子 newcomm
,但不会复制原通信子中添加的属性信息。处于 comm 所关联组内的所有进程都会执行这个调用,对那些不在组 group
中的进程,返回的 newcomm
值为 MPI.COMM_NULL。注意:如果 group
不是 comm
所关联组的子集或者不同进程中变量 group
所包含的组内容不同,则会发生错误。
MPI.Comm.Dup(self, Info info=None)
完全复制当前通信子,包括其中添加过的属性信息。也可以通过属性的回调复制函数控制具体的复制行为。
MPI.Comm.Split(self, int color=0, int key=0)
将与 comm 相关联的组分解为不相交的子组&#