用于求解稀疏线性系统的库

计算科学 线性代数 线性求解器 图书馆
2021-12-19 21:07:35

有许多不同的库可以解决稀疏线性方程组,但是我发现很难弄清楚它们之间的区别。

据我所知,有三个主要软件包: TrilinosPETScIntel MKL它们都可以进行稀疏矩阵求解,它们都很快(据我所知,我无法在其中任何一个上找到可靠的基准),而且它们都是可并行的。我找不到的是差异。

那么,不同的稀疏线性系统求解器之间有什么区别?

2个回答

还有更多,他们都有不同的目标和对问题的看法。这实际上取决于您要解决的问题。这是一个不完整的软件包列表。随意添加更多细节。

大型分布式迭代求解器包

  • PETSc — 围绕 Krylov 子空间方法和线性求解器之间轻松切换的软件包。重量比同类产品中的其他产品轻得多。
  • Trilinos — 大量针对 FEM 应用的软件包
  • Hypre——类似于上面的两个。值得注意的是它非常好的多重网格求解器(可以通过 PETSc 下载)。

并行直接求解器包

串行直接求解器包

  • SuiteSparseUMFPACK是一个非常好的求解器,但这里还有许多其他特殊用途的求解器。
  • Intel Math Kernel Library — 来自 Intel 的高质量库;还有一个并行迭代求解器(但没有大规模并行)。
  • 矩阵模板库——泛型有时可以使代码更快。

交互式环境(更多用于非常小的系统)

其他列表

MKL 不做分布式并行(例如 MPI),对稀疏求解器的支持很初级,绝对不是其他两个的水平。目前,只有一个有意义的基准:稀疏矩阵向量积 (SpMV) 的可扩展性能。由于这是内存带宽有限的,你只能搞砸了。PETSc 和 Trilinos 在这方面做得很好。

真正的区别在于哪种编程环境可以提高您的工作效率。