Mpi Scatter是否以任何顺序发送数据

时间:2018-01-08 00:23:18

标签: mpi

我在网上看到了这个

  

MPI_Scatter获取元素数组,并按进程排名的顺序分配元素。

但我在文档中找不到它。

我有一个数组,有4个进程。一个过程是root - >将在其他3个进程之间分散数据。 id-s为0,1,2,3。

问题:保证,MPI_Scatter()MPI_Scatterv()会按顺序发送数据吗?

示例1:

0: [a, b, c, d, e]

// after scatter

1: [a, b]
2: [c, d]
3: [e]

示例2:

0: [a, b]

// after scatter

1: [a]
2: [b]
3: [ ]

另外,聚集做同样的事情吗? (保留订单)

1 个答案:

答案 0 :(得分:1)

根据MPI_Comm中的排名保证订单。

以下语句是从open-mpi v2.1文档中复制粘贴的:

  

另一种描述是root用户发送消息   MPI_Send(sendbuf,sendcount * n,sendtype,...)。此消息被拆分   在n个相等的段中,第i个段被发送到第i个进程   该组,每个进程都会收到上述消息。发送   所有非根进程都会忽略缓冲区。