求解大型稀疏对称正定矩阵的线性方程组

计算科学 线性求解器 稀疏矩阵 矩阵
2021-12-22 02:23:23

我想反转大矩阵(104×104106×106)但稀疏(小于100每行非零条目)在集群上1648每个节点的处理器。

我正在寻找一种有效的方法来做到这一点。我尝试了几种不同的解决方案,但我遇到了一些问题。

  • 由于矩阵很大,我第一次尝试使用 lapack 失败了,因为它不能处理稀疏矩阵
  • 条件数可以很大
  • 似乎使用这种矩阵,精确的求解器效率不高

从积极的方面来说,我不需要方程的精确逆或精确解Ax=b,因此迭代方法可能更有效。我想我将使用共轭梯度法,因为我可以有效地利用许多处理器。

现在我的问题来了:您认为这种方法有效吗?如果是这样,我应该使用什么预处理器?(我不能真正使用 Jacobi 预处理器,因为Aii=1ji|Aij|10)

1个回答

是的,您可以在普通 PC 上求解这样的系统(多达数百万个方程)。您将需要使用非常准确的 CG 方法实现。问题在于 (a) 在 RAM 中存储如此大的矩阵;(b) 主要数学运算的有效实现,即:矩阵向量乘法。有满足上述要求的求解器;请点击下面的链接(特别是,该网页提供了一个由有限元方法产生的非常大系统的示例):

http://members.ozemail.com.au/~comecau/CMA_Sparse.htm