3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
只是加我2美分。我比較了其中一些庫(kù)。我試圖矩陣乘以3000乘3000矩陣的雙精度。結(jié)果如下。
使用帶有C / C ++,Octave,Python和R的多線程ATLAS,所花費(fèi)的時(shí)間大約為4秒。
使用Jama with Java,所用時(shí)間為50秒。
使用Colt和Parallel Colt與Java一起使用時(shí)間為150秒!
使用JBLAS和Java,由于JBLAS使用多線程ATLAS,所以花費(fèi)的時(shí)間大約為4秒。
所以對(duì)我來(lái)說(shuō)很明顯,Java庫(kù)的表現(xiàn)并不好。但是,如果有人必須使用Java編寫代碼,那么最好的選擇是JBLAS。賈馬,科爾特和平行柯爾特并不快。

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
我是Java Matrix Benchmark(JMatBench)的作者,我將對(duì)這個(gè)討論給出我的看法。
Java庫(kù)之間存在顯著差異,雖然在整個(gè)運(yùn)營(yíng)范圍內(nèi)沒有明顯的贏家,但在最新的績(jī)效結(jié)果(2013年10月)中可以看到一些明顯的領(lǐng)導(dǎo)者。
如果您正在使用“大型”矩陣并且可以使用本機(jī)庫(kù),那么明確的贏家(大約快3.5倍)是具有系統(tǒng)優(yōu)化的netlib的MTJ。如果您需要純Java解決方案,那么MTJ,OjAlgo,EJML和Parallel Colt都是不錯(cuò)的選擇。對(duì)于小型矩陣,EJML是明顯的贏家。
我沒有提到的庫(kù)顯示出重大的性能問(wèn)題或缺少關(guān)鍵功能。
添加回答
舉報(bào)