2013-01-21 50 views
0

我正在爲我的數學博士在C++中編寫一個科學應用程序,它基於一些重線性代數,主要是BLAS 3級例程。所用矩陣的大小差異很大,理想情況下我希望能夠處理10000或更高的非常大的矩陣。到目前爲止,我已經使用了多線程的英特爾MKL,可以很好地擴展到8個內核。我的算法產生了正確的結果,但是在雙精度算術中,由於採用高功率導致的累積誤差,它非常不穩定。此外,由於我可以訪問大型超級計算機羣集,而且我的算法可以輕鬆擴展到多個節點,所以我希望使用MPI將應用程序擴展到數百個節點。BLAS + Multiple Precision + MPI

我的目標是找一個模板BLAS庫:

支持多種精度運算, 支持多線程, 支持MPI

我發現至今: MTL4 - 矩陣模板庫4似乎要做到以上所有的事情,但是開源版本只能運行在一個核心上,而超級計算版本相當昂貴。

Eigen - 似乎不支持多核?如果與MKL關聯,它是否支持多核和MPI?

犰狳 - 做以上所有?

我將不勝感激任何見解和建議

親切的問候,

瑪麗亞

+0

如果您確定MTL4能夠完美滿足您的需求,我會建議直接聯繫MTL4銷售人員,並要求提供一份免費教育許可證。 –

回答

0

根據您的矩陣問題,Tpetra package of Trilinos可能是值得一試。它以標量類型爲模板,因此可以使用多個精度類型。它針對超級計算機上的大規模應用,因此可以期待良好的並行性能。

希望它有幫助!

編輯:它是免費的!