计算密集厄密矩阵的所有特征值的快速方法

计算科学 并行计算 特征值 高性能计算 密集矩阵
2021-12-18 03:40:44

我正在寻找密集 NxN Hermitian 矩阵的特征值,该矩阵是从量子物理学中的密度算子计算得出的。需要所有特征值,因为我需要计算它们的绝对值之和。我想知道这个问题是否有可以并行运行的好的解决方案?

我感兴趣的问题规模至少应该是 N=40000。我目前使用的是 gsl 库,它的优点是除了矩阵本身之外不需要额外的工作内存。但是,由于没有并行化,N=20000 的运行时间接近 5 小时。我将在墙上时间限制为 3 天的计算集群中运行该问题,因此我的程序可能会被杀死。

我试过 SLEPc,但它不能很好地适应密集矩阵。8核的计算时间几乎和单核gsl一样!更不用说在我的情况下它需要更多的内存和不太准确的结果。

1个回答

SLEPc 是一个为解决大型稀疏特征值问题而设计的库,而您的矩阵是密集的。SLEPc 使用的算法基于矩阵向量乘法,这些算法的性能主要受可用内存带宽而非处理器内核数量的限制。

您最好使用旨在解决密集特征值问题的软件库。例如,如果您使用 LAPACK 的 QR 分解算法,它将使用 BLAS 库例程,其中一些可以有效地利用您的八核。

然而,密集特征值问题的并行化仍然是一个活跃的研究领域。例如,请参阅这些最近的会议演讲:

http://web.eecs.utk.edu/~luszczek/conf/siamcse2013_eigvalsolv/