首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MPI通信器之间复制数据

在MPI通信器之间复制数据
EN

Stack Overflow用户
提问于 2014-02-11 11:24:57
回答 1查看 920关注 0票数 0

我已经将MPI_COMM_WORLD分成两个子通信器,我想将分布在MPI_COMM_WORLD上的数据数组传输给两个子通信器。在MPI-1.1中做这件事的最好方法是什么?

例如,有一个数组A = [1 2 3 4 5 6 7 8]分布在MPI_COMM_WORLD中的四个MPI进程中,如下所示

代码语言:javascript
复制
rank 0: [1 2] 
rank 1: [3 4] 
rank 2: [5 6] 
rank 3: [7 8]

我将MPI_COMM_WORLD分解为两个子通信程序,每个子通信程序都是两个MPI进程,希望我的数据如下所示:

代码语言:javascript
复制
subcommunicator1:

    rank 0: [1 2 3 4]
    rank 1: [5 6 7 8]

subcommunicator2:

    rank 0: [1 2 3 4]
    rank 1: [5 6 7 8]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 15:20:59

没有办法将数据从一个通信器发送到另一个通信器。在MPI中,通信器被专门设计为包含组内的通信。在您的示例中,您需要在拆分MPI_COMM_WORLD之前分发您的数据。您如何做到这一点将取决于您的数据和所需的分布。您可能需要查看MPI_SCATTERMPI_GATHER,或者两者兼而有之。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21700525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档