【发布时间】:2017-03-26 10:25:32
【问题描述】:
我正在尝试使用 MPI_Scatter 在 16 个进程中传输一组矩阵 [5000] [2000] 行(尝试实现矩阵乘法)。但 5000 不能被 16 整除。因此,如果每个进程收到相同数量的行,最后几行将丢失。 (312 * 16 + 8 = 5000)
谁能告诉我如何使用 MPI_Scatter 在进程中正确分散这 [5000] 行?
谢谢
【问题讨论】:
我正在尝试使用 MPI_Scatter 在 16 个进程中传输一组矩阵 [5000] [2000] 行(尝试实现矩阵乘法)。但 5000 不能被 16 整除。因此,如果每个进程收到相同数量的行,最后几行将丢失。 (312 * 16 + 8 = 5000)
谁能告诉我如何使用 MPI_Scatter 在进程中正确分散这 [5000] 行?
谢谢
【问题讨论】:
我找到了我正在寻找的答案。 MPI 为此提供了功能。一个收集和分散的版本。
MPI_Scatterv http://www.mpich.org/static/docs/v3.1/www3/MPI_Scatterv.html
MPI_Gatherv http://www.mpich.org/static/docs/v3.1/www3/MPI_Gatherv.html
【讨论】: