MPI学习——进程组与通信域相关函数

本文介绍了MPI中进程组的管理,包括获取进程组大小、排名,转换不同进程组中的排名,以及比较进程组。同时,文章详细阐述了通信域的管理,如复制、创建、分割和释放通信域,以及如何根据特定条件调整进程组。
//--------进程组的管理

//返回指定进程组中所包含的进程的个数
int MPI_Group_size(MPI_Group group, int *size);

//返回调用进程在给定进程中的编号rank
int MPI_Group_rank(MPI_Group group, int *rank);

//返回进程组group1中的n个进程 由rank1指定 在进程组group2中对应的编号 相应的编号放在rank2中
//若进程组group2中不包含进程组group1中指定的进程 则相应的返回值为MPI_UNDEFINED
int MPI_Group_translate_ranks(MPI_Group group1, int n, int *ranks1, MPI_Group group2, int *ranks2)

//对两个进程组group1和group2进行比较 如果两个进程组group1和group2所包含的进程以及相同进程的编号
//都完全相同 则 返回MPI_IDENT 如果两个进程组group1和group2所包含的进程完全相同但是相同进程的编号
//在两个组中并不相同 则返回MPI_SIMILAR 否则返回MPI_UNEQUAL
int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result)

//返回指定的通信域所包含的进程组
int MPI_Comm_group(MPI_Comm comm, MPI_Group * group)

//求两个进程组的并集、交集、差集
int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)
int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)
int MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup)

//将已有进程组中的n个进程rank[0] ... rank[n-1]形成一个新的进程组newgroup 
int MPI_Group_incl(MPI_Group group, int n, int *ranks, MPI_Group *newgroup)

//与上面相反,将已有进程组中的n个进程去掉 形成一个新的进程组newgroup
int MPI_Group_excl(MPI_Group group, int n, int *ranks, MPI_Group *newgroup)

//释放一个已有的进程组
int MPI_Group_free(MPI_Group *group)



//------通信域的管理(部分函数与进程组的相似,不再列出

//复制通信域
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)

//根据group定义的进程组,创建一个新的通信域。
//所有的group参数都必须具有同样的值,而且group必须是与comm对应进程组的一个子集
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm)

//此调用首先将具有相同color值的进程形成一个新的进程组 新产生的通信域与这些进程
//组一一对应 而新通信域中各个进程的顺序编号是根据key的大小决定的 即key越小 则该
//进程在新通信域中的进程编号也越小 若一个进程中的key相同 则根据这两个进程在原来
//通信域中的顺序编号决定新的编号 
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm)

//释放通信域,调用结束后该句柄被置为MPI_COMM_NULL
int MPI_Comm_free(MPI_Comm *comm)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值