【发布时间】:2013-02-11 22:41:40
【问题描述】:
我有以下 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 的派生数据类型满足我的要求感到困惑。
谢谢
【问题讨论】:
-
这里缺少一些东西。
X(0 to 200) / Y(201 to 408)和X(201 to 408) / Y(0 to 200)呢?
标签: multithreading mpi openmpi