私のJavaソースでは、次の行を頻繁に実行する必要があります:
vecX = EigenMat.multiply(vecX);
vecY = EigenMat.multiply(vecY);
EigenMat は、N ~ 40 の N x N 行列です。vecX/vecY は、N x 1 ベクトルです (RealMatrix のインターン)
VisualFM の「Sampler」を使用して、コード内のいくつかのホットスポットを見つけ、
org.apache.commons.math3.linear.Array2DRowRealMatrix.<init>()
org.apache.commons.math3.linear.Array2DRowRealMatrix.multiply()
非常に高いランタイムを持っています。私は Java の専門家ではありませんが、すべての乗算で新しいベクトルが作成されると思います。古いものを再割り当てできますか?
多分私はそれをスピードアップするためにJBLASに切り替える必要がありますか?
マチロ
編集:シングルコアのみ