我有以下 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 的派生数据类型的使用感到困惑以满足我的要求。
谢谢