我有以下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的派生数据类型使用感到困惑。
由于
答案 0 :(得分:0)
经过一些MPI教程后,我得到了如何发送3D数组。 我们需要使用MPI_TYPE_INDEXED派生数据类型