使用MPI发送3D数组的部分

时间:2013-02-26 13:01:54

标签: multithreading mpi openmpi

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

由于

1 个答案:

答案 0 :(得分:0)

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