我正在寻找一种高效的eigensolver(语言不重要,虽然我会用C#编程),它利用了现代CPU中的多核功能。能够直接与pardiso solver合作是一个重要的优势。我的矩阵大多是sparse matrix,因此理想的求解器应该能够利用这一事实并大大增强内存使用和性能。
到目前为止,我只找到了LAPACK和ARPACK。 LAPACK as implemented in Intel MKL是一个很好的候选者,因为它提供了多核优化。但似乎LAPACK中的drivers不能直接与pardiso求解器一起工作,而且,似乎它们没有利用稀疏矩阵(但我不确定这一点)。
另一方面,ARPACK似乎很难在Windows环境和平行版PARPACK,doesn't work so well中进行设置。奖励点是它可以与pardiso solver一起使用。最好的是具有多核加速的英特尔MKL + ARPACK。不确定是否有任何现有的实现已经做了我想做的事情?
答案 0 :(得分:1)
我正在处理一个与你所说的非常相似的问题。我考虑过FEAST: http://www.ecs.umass.edu/~polizzi/feast/index.htm 我正努力让它现在正常工作,但它看起来很完美。如果您使用它,我很想听听您的体验。 干杯 奈德
答案 1 :(得分:0)
查看Eigen2库。
答案 2 :(得分:0)
我已经在C#中实现了它。
我们的想法是必须转换CSR格式的矩阵格式。然后,可以使用MKL计算线性方程求解算法(使用pardiso求解器),矩阵向量处理。