【问题标题】:Sending Section of 3D array using MPI使用 MPI 发送 3D 数组的部分
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-12-25
    • 1970-01-01
    • 2019-08-12
    • 2012-03-19
    • 2013-03-07
    • 2013-01-12
    • 2012-10-18
    • 1970-01-01
    • 2013-12-20
    相关资源
    最近更新 更多