Accelerated Cyclic Reduction: A Distributed-Memory Fast Solver for Structured Linear Systems
Gustavo Ch\'avez, George Turkiyyah, Stefano Zampini, Hatem Ltaief,, David Keyes

TL;DR
Accelerated Cyclic Reduction (ACR) is a distributed-memory direct solver for 3D structured linear systems, combining cyclic reduction and hierarchical matrix techniques for efficient, scalable solutions especially suited for multiple right-hand sides.
Contribution
The paper introduces ACR, a novel distributed-memory solver that leverages hierarchical matrix arithmetic to efficiently solve rank-compressible block tridiagonal systems from elliptic PDE discretizations.
Findings
ACR has $O(k N ext{log} N ( ext{log} N + k^2))$ arithmetic complexity.
ACR demonstrates good scalability and robustness compared to multifrontal and multigrid methods.
ACR outperforms or matches existing methods in large-scale elliptic system solutions.
Abstract
We present Accelerated Cyclic Reduction (ACR), a distributed-memory fast direct solver for rank-compressible block tridiagonal linear systems arising from the discretization of elliptic operators, developed here for three dimensions. Algorithmic synergies between Cyclic Reduction and hierarchical matrix arithmetic operations result in a solver that has arithmetic complexity and memory footprint, where is the number of degrees of freedom and is the rank of a typical off-diagonal block, and which exhibits substantial concurrency. We provide a baseline for performance and applicability by comparing with the multifrontal method where hierarchical semi-separable matrices are used for compressing the fronts, and with algebraic multigrid. Over a set of large-scale elliptic systems with features of nonsymmetry and indefiniteness, the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
