并行程序设计基础——进程组和通信域(2)

目录

一、组间通信域

1、MPI_COMM_TEST_INTER

2、MPI_COMM_REMOTE_SIZE

3、MPI_COMM_REMOTE_GROUP

4、MPI_INTERCOMM_CREATE

5、MPI_INTERCOMM_MERGE

6、示例

二、属性信息

1、MPI_KEYVAL_CREATE

2、MPI_KEYVAL_FREE

3、MPI_ATTR_PUT

4、MPI_ATTR_GET

5、MPI_ATTR_DELETE

6、示例

三、小结


        上一节我们介绍了MPI进程组和通信域的相应管理接口的使用方法,本节我们继续对剩余内容进行介绍。

一、组间通信域

        组间通信域是一种特殊的通信域,该通信域包括两个进程组,通过组间通信域实现这两个不同进程组内进程之间的通信。一般把调用进程所在的进程组叫做本地组,把另一个组叫做远程组

1、MPI_COMM_TEST_INTER

        MPI_COMM_TEST_INTER判断给定的通信域是组内通信域还是组间通信域,如果是组间通信域则返回true,否则返回false。

MPI_COMM_TEST_INTER(comm, flag)
IN    comm        通信域(句柄)
OUT   flag        测试结果(逻辑值)

//c语言的说明
int MPI_Comm_test_inter(MPI_Comm comm, int *flag)
//Fortran语言的说明
MPI_COMM_TEST_INTER(COMM, FLAG, IERROR)
INTEGER  COMM, FLAG, IERROR

2、MPI_COMM_REMOTE_SIZE

        MPI_COMM_REMOTE_SIZE返回组间通信域内远程进程组的进程个数。

MPI_COMM_REMOTE_SIZE(comm, size)
IN    comm        通信域(句柄)
OUT   size        comm的远程组中进程的个数(整数)

//c语言的说明
int MPI_Comm_remote_size(MPI_Comm comm, int *size)
//Fortran语言的说明
MPI_COMM_REMOTE_SIZE(COMM, SIZE, IERROR)
INTEGER  COMM, SIZE, IERROR

3、MPI_COMM_REMOTE_GROUP

        MPI_COMM_REMOTE_GROUP返回组间通信域中的远程进程组。

MPI_COMM_REMOTE_GROUP(comm, group)
IN    comm         通信域(句柄)
OUT   group        comm的远程组(句柄)

//c语言的说明
int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group)
//Fortran语言的说明
MPI_COMM_REMOTE_GROUP(COMM, GROUP, IERROR)
INTEGER  COMM, GROUP, IERROR

4、MPI_INTERCOMM_CREATE

        MPI_INTERCOMM_CREATE调用创建一个组间通信域,它包括两个通信域,其形成方式是,每个进程提供自身所在的一个通信域local_comm中特定进程的标识local_leader(同一个本地进程组中的进程给出的local_leader必须相同),同时给出另一个通信域中特定进程在peer_comm中的标识remote_leader(同一个本地进程组中的进程给出的remote_leader也必须相同),形成相同组间通信域的进程必须提供相同的tag,在这里tag不允许是MPI_WILD_TAG。一般地,用MPI_COMM_WORLD的复制品来作为peer_comm。

MPI_INTERCOMM_CREATE(local_comm, local_leader, peer_comm, remote_leader, tag, newintercomm)
IN    local_comm         本地组内通信域(句柄)
IN    local_leader       本地组内特定进程的标识号(整型)
IN    peer_comm          “对等”通信域,仅在local_leader中有意义(句柄)
IN    remote_leader      远程组特定进程在peer_comm中对应的标识号(整型)
IN    tag                “安全”标志(整型)
OUT   newintercomm       返回的新组间通信域(句柄)

//c语言的说明
int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm)
//Fortran语言的说明
MPI_INTERCOMM_CREATE(LOCAL_COMM, LOCAL_LEADER, PEER_COMM, REMOTE_LEADER, TAG, NEWINTERCOMM, IERROR)
INTEGER  LOCAL_COMM, LOCAL_LEADER, PEER_COMM, REMOTE_LEADER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿核试Bug愁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值