我们正在计算运行时受矩阵运算约束的东西.(如果感兴趣,请参阅下面的一些细节.)这次经历提出了以下问题
民间有没有使用Java库的矩阵数学性能经验(例如,乘法,逆等)?例如:
我搜查了一下,一无所获.
我们的速度比较详情:
我们使用的是英特尔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并没有慢得多,有时甚至更快.