1

我使用 ojAlgo 库开发了一个程序来计算矩阵指数。它包括特征值分解。ojAlgo 是否包含多线程算法?例如,是否可以将多个线程附加到分解任务以减少分解时间?

eigenvalue = Eigenvalue.PRIMITIVE.make(matrix);
eigenvalue.decompose(matrix); //matrix dimension (3000x3000)
4

1 回答 1

1

是的,它确实。如果您查看该工厂方法Eigenvalue.PRIMITIVE.make(matrix);,您会发现它会根据矩阵大小切换实现。用于较大矩阵的实现是多线程的。对您来说唯一的问题是单线程实现非常高效,以至于在矩阵大于 8192 之前工厂不会切换到多线程。

你知道矩阵是否对称吗?如果你这样做,我建议你使用Eigenvalue.PRIMITIVE.make(matrix, boolean);而不是Eigenvalue.PRIMITIVE.make(matrix);. 否则,算法将在每次调用时检查对称性eigenvalue.decompose(matrix);

于 2018-08-16T18:54:48.437 回答