【问题标题】:Dimensioning in MPI ScatteringMPI 散射中的尺寸标注
【发布时间】:2016-06-23 09:34:05
【问题描述】:

所以我正在使用 MPI 编写一个简单的矩阵乘法代码。我面临的问题之一是将其中一个矩阵分散到所有处理器。我假设我的矩阵的维度可能不能被处理器的数量整除。

我还使用了一个变量col_id,它使用 mod 函数计算分配给每个处理器的列数。例如,如果我们有 9 列和 6 个处理器,则前 3 个处理器的 col_id 值为 2,而其他三个处理器的 col_id 值为 1。

所以我使用了基本的散射操作。

call MPI_Scatter(b, dim2*col_id, MPI_Integer, b1, dim2*col_id, MPI_Integer, 0, MPI_COMM_WORLD, ierr)

col_id 对于不同的处理器会有所不同。我们是否允许使用此变量在MPI_scatter 中指定尺寸?

【问题讨论】:

  • 欢迎来到 SO。请考虑将您正在使用的编程语言添加到标签中以启用语法突出显示。它也可能有助于向我们展示您的更多代码,尤其是您如何计算 col_id
  • 我正在使用 FORTRAN 90,而 col_id 只是使用 mod 函数计算的。例如,如果我们有 9 列和 6 个处理器,则前 3 个处理器的 col_id 值为 2,而其他三个处理器的 col_id 值为 1。
  • 谢谢。我冒昧地将其添加到帖子中。请务必始终将编程语言添加到您的问题标签列表(问题文本下方编辑字段中的项目列表)。这些是可以过滤问题的方法。现在 FORTRAN 专家(我当然不是)可以使用过滤系统找到问题。
  • @m00am 不是真的,大多数订阅fortran标签,只有少数订阅fortran90。仅在适用时使用用于详细规范的版本。它与pythonpython-3 相同。
  • @Vladimir F 感谢您的更正。我没有意识到这一点,但仔细查看标签肯定会告诉我。

标签: fortran mpi matrix-multiplication scatterview


【解决方案1】:

函数MPI_Scatterv 正是为此目的而设计的。而不是 sendcount 您指定 sendcounts - 一个与通信器大小相同的整数数组。

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2021-01-21
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多