2

所以我正在使用 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

4

1 回答 1

3

该功能MPI_Scatterv正是为此目的而设计的。而不是sendcount您指定sendcounts的 - 通信器大小的整数数组。

于 2016-03-09T08:03:57.527 回答