c - 对二维数组使用 MPI 散点图

标签 c mpi

我正在尝试使用 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

关于c - 对二维数组使用 MPI 散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40560691/

相关文章:

c - 我需要将 Windows 中的文件路径从 c :\abc\efg\mmm. txt 转换为 c :\\abc\\mm. txt?

python - 在 python gdb 中将地址转换为特定类型

c - 为什么我的函数会使程序崩溃?

io - MPI - 抑制某些处理器的输出

c++ - 如何正确升级您的 OpenMP 版本?

c - 解释与printf相关的c程序的结果值

c - 真的不检查close()的返回值: how serious,吗?

c - 什么会使 MPI_File_write_all 因浮点异常而失败?

c++ - 如何在 MPI 中 sleep

c - C中的MPI。在 I_send 和 Irecv 中使用循环