我花了一些时间考虑一个计算矩阵的方案,一切都很有意义,但最后一部分我不知道如何处理。
这是我打算做的(场景):
- 要求计算一个 10(w)x5(h) 矩阵。
- 我有 10 个处理器可用。
- 在每个单独的处理器上声明一个 1x5 矩阵,包括秩为 0 的 proc。
- 计算每个处理器上的每个子矩阵的偏移量。
- MPI_Barrier 等待所有 10 个处理器完成计算。
显示完整的矩阵。
一直到第五步我很高兴,但我不知道该怎么做才能越过障碍。没有一个处理器具有完整的 10x5 矩阵。一开始我想我不需要一个,我想要这样的东西:
foreach(procX in proc(0-9)) showColumn(procX)
但是我不知道在 MPI_Barrier 之后将调用哪个处理器,并且我不知道如何根据处理器的顺序来打印东西(否则矩阵将无法正确打印)。
有没有人知道如何正常处理这个问题?我已经阅读了很多关于让每个处理器在矩阵的某些部分上工作的内容,但是我找不到任何关于如何组合这些不同部分的内容。
我没有在我的代码中使用散点图(即,没有使用主从技术)
谢谢