【发布时间】: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 专家(我当然不是)可以使用过滤系统找到问题。
-
@Vladimir F 感谢您的更正。我没有意识到这一点,但仔细查看标签肯定会告诉我。
标签: fortran mpi matrix-multiplication scatterview