2009-11-04 62 views
5

我們目前有一個使用C++編寫的高性能科學應用程序,它使用Intel Math Kernel Library用於.NET/C#和Java的高性能數學庫

我們正在考慮編寫一個用Java和.NET/C#編寫的基準測試應用程序來比較性能差異。要做到這一點,我們還需要一個好的(商業優先)數學庫。有誰知道Java/C#的任何數學等價庫嗎?

作爲旁註:C++有Intel TBB庫來幫助多線程。 .NET/C#和Java有相同的東西嗎?

+0

你有沒有想過只爲C#和Java編寫C++庫的包裝? – 2009-11-04 18:52:22

+1

Java具有java.util.concurrent和子包。我對TBB並不太熟悉,但這是Sun執行線程的方式。 – KitsuneYMG 2009-11-04 18:53:29

+0

@Aaron:是的,我也曾想過這件事。感謝評論。 – sivabudh 2009-11-04 21:40:59

回答

1

大聲笑。爲什麼我以前沒有想過這個?

只需使用Java和.NET中的Intel MKL Math庫!

請訪問以下鏈接:

+1

主要觀點是由此產生的C#代碼不再可移植到例如mono/linux,因爲它依賴於在CLR之外運行的API/DLL。 – redcalx 2009-11-11 21:55:16

+0

感謝您的好想法。我在英特爾MKL論壇上發佈了一個問題,以查看MKL linux版本是否可以與Mono實現協同工作。如果沒有,他們的計劃是什麼。再次感謝。 – sivabudh 2009-11-11 22:29:12

+0

@ the-locster:Intel迴應Mono不支持* yet *。所以男人..身體不好。 – sivabudh 2009-11-17 02:55:36

4

我可以用C#幫助:

這裏是另一個太問題,討論various C# math libraries

而且你可以看看PLINQ爲C#多線程的幫助。

+0

嘿..感謝那個鏈接。 Btw ..你在科學界?如果是這樣,你在工作中使用C#嗎?你有任何C#(高性能)數學庫的經驗嗎? – sivabudh 2009-11-04 18:41:38

+0

我寫了一個名爲Micro Saint Sharp的離散事件模擬應用程序。我們7年前從C切換到C#。表現很棒。我不使用任何外部數學庫。我們唯一使用的特殊數學課程是用於計算各種隨機分佈,它的性能從來不是模擬瓶頸。 – 2009-11-04 19:33:06

+0

我很驚訝C#的表現與C相提並論。很高興聽到! – sivabudh 2009-11-04 21:41:35

1

ALGLIB是一個跨平臺的數值分析和數據處理庫。它是免費的 - ALGLIB以GPL許可證(版本2或更高版本)發佈。它包含:

微分方程

線性方程

矩陣運算和矢量運算,特徵向量

數值積分,插值與擬合,優化

FFT,卷積,相關

統計:一般算法,假設檢驗

數據分析:分類,迴歸,其他任務

特殊功能

0

SuanShu是收集了大量的數值算法。它得到很好的支持。它有一個Java和一個免費的C#版本。