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