MPI_COMM_SPLIT函数浅尝

MPI_COMM_SPLIT


之前通常使用MPI_COMM_WORLD,但是这个范围太大了,而我要完成的cannon算法需要对于节点进行区分,使得在shift步骤的时候需要在某一个域中进行操作。


所以我需要对于节点们进行split操作,使得节点能够划分子区域。


MPI_Comm_split(
    MPI_Comm comm,
    int color,
    int key,
    MPI_Comm* newcomm)


MPI_Comm_split主要有以下四个参数:
第一个参数comm为原来的域的整体范围,也就是被划分的范围。
第二个参数为color,相同的color的节点会被划分成同一个子域。
第三个参数为key,在每个子域中会有诸多节点,节点在子域中的rank是多少,是通过key从小到大进行排列从而产生的。
第四个参数为newcomm,也就是一个新的通信域。


于是每个计算节点除了原来的MPI_COMM_WORLD的world_rank之外,还在很多小的sub_comm中有sub_rank,也就是有诸多小身份。
就好像一个人可以可以说是地球上的人,但是也有很多不同的身份,比如说中国人,比如说男人,这都是通过不同的子域划分而产生的不同的区域。


参考资料:
1.http://mpitutorial.com/tutorials/introduction-to-groups-and-communicators/
一个比较简单易上手的mpi tutorial , 中文的便捷的资料是在是太少了
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值