Hierarchical algorithms on hierarchical architectures

Loading...
Thumbnail Image

Date

Journal Title

Journal ISSN

Volume Title

Publisher

Royal Society Publishing

Abstract

A traditional goal of algorithmic optimality, squeezing out flops, has been superseded by evolution in architecture. Flops no longer serve as a reasonable proxy for all aspects of complexity. Instead, algorithms must now squeeze memory, data transfers, and synchronizations, while extra flops on locally cached data represent only small costs in time and energy. Hierarchically low-rank matrices realize a rarely achieved combination of optimal storage complexity and high-computational intensity for a wide class of formally dense linear operators that arise in applications for which exascale computers are being constructed. They may be regarded as algebraic generalizations of the fast multipole method. Methods based on these hierarchical data structures and their simpler cousins, tile low-rank matrices, are well proportioned for early exascale computer architectures, which are provisioned for high processing power relative to memory capacity and memory bandwidth. They are ushering in a renaissance of computational linear algebra. A challenge is that emerging hardware architecture possesses hierarchies of its own that do not generally align with those of the algorithm. We describe modules of a software toolkit, hierarchical computations on manycore architectures, that illustrate these features and are intended as building blocks of applications, such as matrix-free higher-order methods in optimization and large-scale spatial statistics. Some modules of this open-source project have been adopted in the software libraries of major vendors. This article is part of a discussion meeting issue 'Numerical algorithms for high-performance computational science'. © 2020 The Authors. Published by the Royal Society under the terms of the Creative Commons Attribution License http://creativecommons.org/licenses/by/4.0/, which permits unrestricted use, provided the original author and source are credited.

Description

Keywords

Computational linear algebra, Exascale architectures, Hierarchical matrices, Application programs, Data transfer, Digital storage, Higher order statistics, Mathematical operators, Memory architecture, Open source software, Open systems, Computational intensity, Exascale, Hierarchical architectures, Hierarchical computation, Hierarchical data structure, Many-core architecture, Algorithm, Article, Cousin, Human, Library, Mathematics, Memory, Software, Matrix algebra

Citation

Endorsement

Review

Supplemented By

Referenced By