Oj Algo并发

Oj Algo concurrency

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

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

是的。如果您查看该工厂方法 Eigenvalue.PRIMITIVE.make(matrix); 内部,您会发现它根据矩阵大小切换实现。用于较大矩阵的实现是多线程的。对你来说唯一的问题是单线程实现效率很高,直到矩阵大于8192时工厂才切换到多线程。

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

时检查对称性