ランタイムが行列演算によって拘束される何かを計算しています。(興味がある場合は、以下に詳細をいくつか示します。) この経験から、次の質問が生じました。
行列演算 (乗算、逆数など) 用の Java ライブラリのパフォーマンスに関する経験はありますか? 例えば:
検索しても何も見つかりませんでした。
速度比較の詳細:
Intel FORTRAN (ifort (IFORT) 10.1 20070913) を使用しています。Apache commons math 1.2 matrix ops を使用して Java (1.6) で再実装しましたが、すべての桁の精度に一致しています。(Java でそれが必要な理由があります。) (Java doubles、Fortran real*8)。Fortran: 6 分、Java 33 分、同じマシン。jvisualm プロファイリングは、RealMatrixImpl.{getEntry,isValidCoordinate} に費やされた多くの時間を示しています (未リリースの Apache commons math 2.0 ではなくなっているようですが、2.0 は速くはありません)。Fortran は Atlas BLAS ルーチン (dpotrf など) を使用しています。
明らかに、これは各言語のコードに依存する可能性がありますが、ほとんどの場合、同等の行列演算であると考えています。
ライブラリを使用しない他のいくつかの計算では、Java はそれほど遅くはなく、場合によってははるかに高速です。