亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java矩陣數學庫的性能?

Java矩陣數學庫的性能?

陪伴而非守候 2019-09-18 19:52:26
我們正在計算運行時受矩陣運算約束的東西。(如果感興趣,請參閱下面的一些細節。)這次經歷提出了以下問題民間有沒有使用Java庫的矩陣數學性能經驗(例如,乘法,逆等)?例如:JAMA小馬Apache公共數學我搜查了一下,一無所獲。我們的速度比較詳情:我們使用的是英特爾FORTRAN(ifort(IFORT)10.1 20070913)。我們使用Apache commons math 1.2矩陣運算在Java(1.6)中重新實現了它,并且它同意所有的精度數字。(我們有理由在Java中想要它。)(Java雙打,Fortran真* 8)。Fortran:6分鐘,Java 33分鐘,同樣的機器。jvisualm profiling顯示了在RealMatrixImpl中花費了大量時間。{getEntry,isValidCoordinate}(在未發布的Apache commons math 2.0中似乎已經消失了,但2.0并不快)。Fortran正在使用Atlas BLAS例程(dpotrf等)。顯然這可能取決于我們在每種語言中的代碼,但我們相信大部分時間都在等效的矩陣運算中。在其他幾個不涉及庫的計算中,Java并沒有慢得多,有時甚至更快。
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

只是加我2美分。我比較了其中一些庫。我試圖矩陣乘以3000乘3000矩陣的雙精度。結果如下。

使用帶有C / C ++,Octave,Python和R的多線程ATLAS,所花費的時間大約為4秒。

使用Jama with Java,所用時間為50秒。

使用Colt和Parallel Colt與Java一起使用時間為150秒!

使用JBLAS和Java,由于JBLAS使用多線程ATLAS,所以花費的時間大約為4秒。

所以對我來說很明顯,Java庫的表現并不好。但是,如果有人必須使用Java編寫代碼,那么最好的選擇是JBLAS。賈馬,科爾特和平行柯爾特并不快。


查看完整回答
反對 回復 2019-09-18
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

我是Java Matrix Benchmark(JMatBench)的作者,我將對這個討論給出我的看法。


Java庫之間存在顯著差異,雖然在整個運營范圍內沒有明顯的贏家,但在最新的績效結果(2013年10月)中可以看到一些明顯的領導者。


如果您正在使用“大型”矩陣并且可以使用本機庫,那么明確的贏家(大約快3.5倍)是具有系統優化的netlib的MTJ。如果您需要純Java解決方案,那么MTJ,OjAlgo,EJML和Parallel Colt都是不錯的選擇。對于小型矩陣,EJML是明顯的贏家。


我沒有提到的庫顯示出重大的性能問題或缺少關鍵功能。


查看完整回答
反對 回復 2019-09-18
  • 3 回答
  • 0 關注
  • 1651 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號