2014-03-03 22 views
2

我想分析一下如何使用約簡(並行)來添加浮點數和涉及的大量精度損失。與串行添加相比,絕對減少將有助於獲得更高的精度。如果您能指導我詳細的資料來源或提供一些有關此分析的見解,我將非常感激。謝謝。瞭解並行還原的浮點精度分析

+0

你似乎沒有提出具體的問題;你能否改寫一下,讓你有一些具體的問題,而不是隻是要求一般的知識? – Durandal

+1

對不起,不準確。其實我碰到一個問題如下:給定一個100萬數字的數組(雙精度浮點數在1和2之間),其中數字遵循平均值爲1.4的高斯分佈。什麼將是這些數字的最佳近似總和。如果我們通過並行減少來添加這些數字,那麼精度的提高是多少。 – samkit

回答

1

每個原始浮點運算都會有一個舍入誤差;如果結果是x,則舍入誤差爲< = c * abs(x),對於某個相當小的常數c> 0。

如果添加1000個數字,則需要999次添加。每個添加都有一個結果和一個舍入錯誤。當結果很小時,舍入誤差很小。所以你要調整加法的順序,以便結果的平均絕對值儘可能小。二叉樹是一種方法。對值進行排序,然後添加最小的兩個數字並將結果放回到排序列表中也是非常合理的。這兩種方法保持平均結果很小,因此保持舍入誤差較小。

+0

謝謝!這有幫助。我找到了一個相關的帖子。 [鏈接](http://stackoverflow.com/questions/15139656/precision-in-sum-reduction-kernel-with-floats?rq=1) – samkit

+1

Kahan summation是管理浮點舍入時間累積的另一個廣泛使用的方法 – talonmies

+0

也許這篇論文將有助於:[準確求和方法的比較](http://www.sigsam.org/bulletin/articles/147/sumnums.pdf)。 – JackOLantern