本帖最后由 Kieran 于 2020-4-2 00:10 编辑
非常感谢你的建议。
我已经调试成功我的并行代码了,我把新的代码放在附件里了。
不过,我还是有几个问题想请教下。
1. 我发现并行和原来串行的代码给出的电导率结果几乎一致,但小数部分却不相同。我分别以200乘以200和300乘以300的k网格的计算情况为例。下面是我的计算结果
200乘以200的k网格的计算情况 串行代码结果
(-50979.1014624820,-8.548064305026142E-013)
并行代码结果
(-50979.0937138954,-6.321723719222822E-013)
300乘以300的k网格的计算情况
串行代码结果
(-49921.7921175357,-5.004116663839427E-013)
并行代码结果
(-49921.7885585475,-5.499348523590750E-014)
我想问下这种情况合理吗?我的意思是说并行的代码计算出的结果是不是一定会与串行代码计算出的结果完全相同呢?还是有可能会有一定程度的差异,就如同我计算的结果一样。
2. 我发现MPI_Bcast本身就有阻断的功能,那是不是在它之前,其实也可以不必使用MPI_Barrier命令呢?
3.能否推荐一下MPI方面的教科书,我想对并行编程有个更好的理解和认识。
多谢啦!
|