This paper presents the XAMG library for solving large sparse systems of linear algebraic equations with multiple right-hand side vectors. The library specializes but is not limited to the solution of linear systems obtained from the discretization of elliptic differential equations. A corresponding set of numerical methods includes Krylov subspace, algebraic multigrid, Jacobi, Gauss-Seidel, and Chebyshev iterative methods. The parallelization is implemented with MPI+POSIX shared memory hybrid programming model, which introduces a three-level hierarchical decomposition using the corresponding per-level synchronization and communication primitives. The code contains a number of optimizations, including the multilevel data segmentation, compression of indices, mixed-precision floating-point calculations, vector status flags, and others. The XAMG library uses the program code of the well-known hypre library to construct the multigrid matrix hierarchy. The XAMG's own implementation for the solve phase of the iterative methods provides up to a twofold speedup compared to hypre for the tests performed. Additionally, XAMG provides extended functionality to solve systems with multiple right-hand side vectors.
翻译:本文展示了 XAMG 图书馆, 用于解决大量稀少的线性代数方程式系统, 包括多个右侧矢量。 图书馆专门研究但不局限于从椭圆差方程式离散中获得的线性系统的解决方案。 相应的数字方法包括 Krylov 子空间、 代数多格、 雅各比、 高斯- 赛义德 和 Chebyshev 迭接方法 。 平行化与 MPI+POSIX 共享的内存混合编程模型一起实施, 该模型使用相应的一级同步和通信原始数据进行三层分解。 代码包含一些优化, 包括多层数据分割、 指数压缩、 混合精度浮点计算、 矢量标记等。 XAMG 库使用著名的 流频库的程序代码构建多格矩阵等级。 XAMG 自己在迭代数方法解算阶段的操作比测试的节流系统提供双倍速度。 此外, XAMG 提供了多个右侧解介系统的扩展功能。