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