分享

线性方程组求解库--HYPRE

 多物理场仿真 2024-04-22 发布于上海

该文最早写于2018年,也收录在第六版纸质书 求解器篇中


最近翻看公众号大规模线性方程组求解历史文章的时候,发现没有介绍HYPRE。只在介绍矩量法的顺带介绍。实际上HYPRE作为成熟的求解大规模线性方程组工具,一直在改进,也是众多商业工业软件广泛采用的求解库。工具开源,使用MIT license and the Apache License,可以放心商业;文档齐全,CMAKE方便生成库,上手快。

以下来自网站介绍翻译:


这是一个高性能预处理器和解算器的软件库,用于在大规模并行计算机上解大型稀疏线性方程组。创建hypre库的主要目的是为用户提供高级并行预处理程序。该库以并行多重网格求解器为特色,适用于结构化和非结构化网格问题。为了便于使用,这些解算器通过hypre的概念线性系统接口从应用程序代码中访问,它允许各种自然问题的描述。

可扩展预处理器为当今和未来的系统提供高效的解决方案:hypre包含几个预处理器算法家族,专注于大规模稀疏线性系统。(请注意,小型线性系统、可在顺序计算机上求解的系统以及密集系统都可以通过专门为它们设计的其他库来更好地解决。)hypre包括“灰箱”算法,它不仅仅使用矩阵,而是比通用库更有效地解决某些类别的问题。这包括结构化多重网格等算法。

一套通用迭代方法为一系列问题提供了选择:hypre提供了几种最常用的基于Krylov的迭代方法,与它的可伸缩预处理器一起使用。这包括非对称系统的方法如GMRES和对称矩阵的方法如共轭梯度。

直观的以网格为中心的界面消除了对复杂数据结构的需求,并提供了对高级求解器的访问:与前几代稀疏线性求解器库相比,hypre在可用性方面向前迈进了一大步,因为用户不必学习复杂的稀疏矩阵数据结构。相反,hypre通过各种概念接口为用户构建这些数据结构,每种接口都适合不同类别的用户。这些包括最适合有限差分应用的基于模板的结构化/半结构化界面;基于有限元的非结构界面:和基于线性代数的接口。每个概念接口都提供了对多个求解器的访问,而无需编写新的接口代码。

用户选项适合初学者和专家:hypre允许用户应用一系列专业知识。初级用户只需付出最少的努力就可以开始运行。更多的专家用户可以通过各种参数进一步控制求解过程。

适合您的计算系统的配置选项:hypre允许在各种计算系统上进行简单灵活的安装。用户可以定制安装以匹配他们的计算系统。选项包括调试和优化模式,更改所需库(如MPI和BLAS)的能力,顺序模式,以及为某些解算器启用线程的模式。

多语言界面为应用程序提供了更大的灵活性:hypre是用C语言编写的(FEI接口除外,它是用C++编写的),为Fortran用户提供了一个接口。


以上来自网站介绍翻译

GitHub地址:

https://github.com/hypre-space/hypre

其它相关网址:

https://hypre./en/latest/ch-intro.html#overview-of-features

https://computing./projects/hypre-scalable-linear-solvers-multigrid-methods

一篇文章入门大规模线性方程组求解(点击链接查看)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多