2 (ほとんどの場合) 疎行列を乗算する必要があります。これらのマトリックスはかなり (約 10k*10k) で、このジョブには 2 つの Xeon Quad コアと 1 つのスレッドしかありませんか?
マルチスレッドの脱皮用の高速ライブラリはありますか? 他のアドバイスはありますか?
2 (ほとんどの場合) 疎行列を乗算する必要があります。これらのマトリックスはかなり (約 10k*10k) で、このジョブには 2 つの Xeon Quad コアと 1 つのスレッドしかありませんか?
マルチスレッドの脱皮用の高速ライブラリはありますか? 他のアドバイスはありますか?
CERN のColtを試してみます。今は少し古いですが、あなたがしようとしていることにまだ優れたライブラリを提供しています.
並列処理については、新しいParallel Coltを試してください。
Colt と Parallel Colt に敬意を表して、それらはあまり高速ではありません。Java の使用に固執し、高速な数値計算を期待する場合は、JBLAS を使用してください。JBLAS は ATLAS を使用しています。マルチスレッド ATLAS を使用するように JBLAS をコンパイルしました - デフォルトではこれを行いません。いくつかの構成オプションを変更する必要があります。ただし、シングルスレッドの JBLAS でさえ、マルチスレッドの Colt や Parallel Colt よりも高速です。Colt、Parallel Colt、JAMA、JBLAS をテストしました。JBLASはカントリーマイルで最高です。
Colt と Parallel Colt は非常に遅いです。JAMAもそうです。そのようなことに最適な Java のライブラリは JBLAS です。
はい、マルチスレッドの行列乗算用のライブラリがあります。Google を友達にしましょう。ただし、スレッドが 1 つしかない場合は、マルチスレッドは必要ないかもしれません。8 コアのマシンにスレッドが 1 つしかないのはなぜですか? 考慮すべきライブラリの 1 つは、Java BLAS インターフェイスです。
これを自分で書こうとするのではなく、ライブラリを探すという、あなたは間違いなく正しいアプローチを取っています。