0

我有以下 3D 数组。

U[Timesteps][X][Y]

有范围

Timesteps ( 0 to 100)
X ( 0 to 480)
Y ( 0 to 480)

我需要在节点之间拆分数组发送以使用 MPI 进行处理。

我想像下面这样拆分

进程(节点 0)应该得到

U[Timesteps][X][Y]

有范围

Timesteps ( 0 to 100)
X ( 0 to 200)
Y ( 0 to 200)

和进程(节点1)应该得到

U[Timesteps][X][Y]

有范围

Timesteps ( 0 to 100)
X ( 201 to 480)
Y ( 201 to 480)

同样,我可以拆分为在运行时可用的尽可能多的节点。(即用完整时间步在 x 和 Y 上分割)

任何人都可以帮助示例 MPI 代码..我对 MPI 的派生数据类型的使用感到困惑以满足我的要求。

谢谢

4

1 回答 1

0

经过一些 MPI 教程后,我了解了如何发送 3D 数组。我们需要使用 MPI_TYPE_INDEXED 派生数据类型

于 2013-02-27T21:43:44.110 回答