【问题标题】:Which sparse linear solver is faster? SparseLU or BiCGSTAB?哪个稀疏线性求解器更快? SparseLU 还是 BiCGSTAB?
【发布时间】:2016-07-11 13:42:36
【问题描述】:

我在一些稀疏矩阵上测试了 Eigen 的 SparseLU 和 BicGSTAB 方法,其密集对应物的大小范围从 3000*3000 到 16000*16000。所有案例都表明 SparseLU 比 BicGSTAB 方法快 13% 左右。

我没有为 BiCGSTAB 提供 RowMajor 稀疏矩阵,也没有给它任何预处理器。这可能是速度慢的原因。

所以我想知道,如果我两种方法都做得好,哪一种应该更快?

如果矩阵大小达到百万*百万呢?

非常感谢!

【问题讨论】:

  • 我的矩阵是不规则方稀疏矩阵

标签: linear-algebra sparse-matrix eigen preconditions


【解决方案1】:

您已经提到了性能差异的主要原因。 当您选择“正确的”预条件子时,迭代方法会变得更快。

您可能参考的预处理器示例列表是:

  • 雅各比
  • 抱歉
  • ILU
  • 多重网格

每个预处理器都有一些参数也应该调整。

【讨论】:

    【解决方案2】:

    线性求解器的选择与矩阵的特征值/特征向量的分布有很大关系。如果你有一个对称的正定矩阵,那么共轭梯度是一个不错的选择。迭代次数取决于条件数(最大特征值/最小特征值)。对于从椭圆算子派生的矩阵,条件数随着矩阵的大小而增加。

    查看 Jonathan Shewchuk 的这篇文章,了解有关 CG 的精彩解释。 (https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf)。

    对于其他矩阵类型,您可以根据特征属性使用GMRES等。看看这篇论文http://www.sam.math.ethz.ch/~mhg/pub/biksm.pdf

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2015-08-07
      • 1970-01-01
      相关资源
      最近更新 更多