21 有许多不同的库可以解决稀疏的线性方程组,但是我发现很难找出区别。 据我所知,主要有三个软件包: Trilinos,PETSc和Intel MKL。它们都可以做稀疏矩阵求解,它们都很快(据我所知,我还不能在其中任何一个上找到可靠的基准),并且它们都是可并行化的。我找不到的是差异。 那么,那里的不同的稀疏线性系统求解器之间有什么区别呢? linear-algebra linear-solver libraries — 安德鲁·斯波特 source
29 还有更多的问题,所有问题都有不同的目标和看法。这实际上取决于您要解决的问题。这里是不完整的软件包列表。随时添加更多详细信息。 大型分布式迭代求解器程序包 PETSc —围绕Krylov子空间方法且易于在线性求解器之间切换的软件包。重量比同类产品轻得多。 Trilinos-针对FEM应用的大量软件包 Hypre-与以上两个类似。值得注意的是,它具有非常好的多网格求解器(可以由PETSc下载)。 并行直接求解器程序包 腮腺炎 超级LU 串行直接求解器软件包 SuiteSparse — UMFPACK是一个非常好的求解器,但是这里还有许多其他特殊用途的求解器。 英特尔数学内核库 —来自英特尔的高质量库;也有并行迭代求解器(但没有大规模并行)。 矩阵模板库 -泛型有时可以使代码更快。 交互式环境(对于非常小的系统,更多) MATLAB —行业标准 SciPy.Sparse —如果您喜欢Python Mathematica-支持SparseArray[]对象的操纵。 其他清单 Jack Dongarra的线性代数免费提供软件列表。 — 灰熊 source
9 MKL不执行分布式并行性(例如MPI),并且对稀疏解算器的支持是基本的,绝对不是其他两个级别的支持。当前,只有一个有意义的基准:稀疏矩阵矢量产品(SpMV)的可扩展性能。由于这是受内存带宽限制的,因此只能将其弄乱。PETSc和Trilinos都可以做到这一点。 真正的区别是哪种编程环境使您的工作效率更高。 — 马特·奈普利 source 因此,几乎可以归结为您是否要使用C或C ++进行工作? — Andrew Spott 它比这开放得多。您当然可以从大多数数值计算语言中调用Trilinos或PETSc(C,Python,C ++和Fortran都是可行的选择,在某种程度上还可以称为MATLAB)。 — 阿隆·艾玛迪亚 PETSc可以正确处理F90数组:),整个对象模型在Matlab中可用。 — Matt Knepley 2011年 1 PETSc和Trilinos在某种程度上也参与了不同的社区。也许您应该首先考虑要解决的问题类型,并且两个工具箱中是否都存在类似问题的现有示例? — 阿隆·艾玛迪亚 1 我建议先看一下不同项目的示例,然后再决定。如果您有具体的示例说明哪种系统更适合某个问题,那么这将是一个更易回答的问题。否则,我们只会开始在我的职业生涯中进行的宗教战争。 — aterrel 2011年