我正在使用MPI对一个使用数值积分的PI进行非常简单的计算,并使用一些数学规则,最终将计算结果转换为总和,其格式为:使用MPI进行简单计算,不同数量的进程会得到不同的结果?
PI =Σ(f(i)) ,我从1到100000开始,而f(i)是一个函数,返回一些基于i的double型值。
编程时,我可以将总和转换为for循环,迭代100000次。使用p处理器的MPI,我将for循环分成p段,每个处理器得到100000个/ p个循环(假设100000%p = 0)。之后使用MPI_Reduce,MPI_SUM来收集这些子结果并将它们相加得到最终结果。
然而,在使用过程不同数量的我,最后的结果会略有不同,我的最终结果PI有12位精度,结果开始大约为第7位后的不同。
我不能得到答案,为什么结果会不同,因为在我心中,它只是不正是相同的任务没有母校的任务如何分配。
非常感谢您的帮助!
我认为你的问题得到了切断 – pyCthon 2013-02-19 02:35:18
我们对此深感抱歉,我只是重新编辑我的问题。 – Bpache 2013-02-19 02:53:31
你能显示你的代码吗? – tune2fs 2013-02-19 08:36:08