Skip to content

Commit

Permalink
Fix typo in paper, add brief numerical highlights.
Browse files Browse the repository at this point in the history
  • Loading branch information
klho committed Jun 23, 2020
1 parent 19baa70 commit 0e7d8a6
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ authors:
affiliations:
- name: Center for Computational Mathematics, Flatiron Institute
index: 1
date: 18 March 2020
date: 23 June 2020
bibliography: paper.bib
---

# Summary

Many large matrices in science and engineering possess a special hierarchical low-rank structure that enables fast multiplication and inversion, among other fundamental operations. Such matrices commonly occur in physical problems, including the classical integral (IE) and differential equations (DE) of potential theory, as well as, for example, in kernel methods for high-dimensional statistics and machine learning. Owing to their ubiquity and practical importance, a wide variety of techniques for exploiting this structure have been developed, appearing in the literature under an assortment of related names such as the fast multiple method (FMM) [@greengard:1987:j-comput-phys], $\mathcal{H}$- and $\mathcal{H}^2$-matrices [@hackbusch:1999:computing], hierarchically semiseparable matrices [@xia:2010:numer-linear-algebra-appl], hierarchically block separable matrices [@gillman:2012:front-math-china], and hierarchical off-diagonal low-rank matrices [@ambikasaran:2013:j-sci-comput]. Many of these now also have accompanying open-source software packages: `FMMLIB` [@gimbutas:2015:commun-comput-phys], `H2Lib` (http://www.h2lib.org), `STRUMPACK` [@rouet:2016:acm-trans-math-softw; @ghysels:2016:siam-j-sci-comput], `HODLRlib` [@ambikasaran:2019:j-open-source-softw], `hm-toolbox` [@massei:2020:siam-j-sci-comput], etc.
Many large matrices in science and engineering possess a special hierarchical low-rank structure that enables fast multiplication and inversion, among other fundamental operations. Such matrices commonly occur in physical problems, including the classical integral (IE) and differential equations (DE) of potential theory, as well as, for example, in kernel methods for high-dimensional statistics and machine learning. Owing to their ubiquity and practical importance, a wide variety of techniques for exploiting this structure have been developed, appearing in the literature under an assortment of related names such as the fast multipole method (FMM) [@greengard:1987:j-comput-phys], $\mathcal{H}$- and $\mathcal{H}^2$-matrices [@hackbusch:1999:computing], hierarchically semiseparable matrices [@xia:2010:numer-linear-algebra-appl], hierarchically block separable matrices [@gillman:2012:front-math-china], and hierarchical off-diagonal low-rank matrices [@ambikasaran:2013:j-sci-comput]. Many of these now also have accompanying open-source software packages: `FMMLIB` [@gimbutas:2015:commun-comput-phys], `H2Lib` (http://www.h2lib.org), `STRUMPACK` [@rouet:2016:acm-trans-math-softw; @ghysels:2016:siam-j-sci-comput], `HODLRlib` [@ambikasaran:2019:j-open-source-softw], `hm-toolbox` [@massei:2020:siam-j-sci-comput], etc.

`FLAM` is a MATLAB (and Octave-compatible) library in this same vein, implementing methods mostly in the "recursive skeletonization" style. Briefly, the core algorithms take as input a matrix implicitly defined by a function to generate arbitrary entries and whose rows/columns are associated with points in $\mathbb{R}^d$ (while we nominally target $d \leq 3$, there is no such explicit limitation). The induced geometry exposes the low-rank matrix blocks, which are then compressed or sparsified using the interpolative decomposition (ID) in a multilevel manner. Being written in MATLAB, the code is quite readable and easy to extend, especially for research purposes, though it may not be the most performant. Still, it is reasonably feature-complete; currently provided algorithms include, for dense IE-like matrices with dimensions $M \geq N$:

Expand All @@ -40,7 +40,9 @@ Similarly, for sparse DE-like matrices, we have:

- `hifde`: HIF for DEs [@ho:2016b:comm-pure-appl-math]; like MF but with quasilinear complexity for all $d$.

Most of these algorithms have previously been published though some are perhaps new (if but straightforward modifications or extensions of existing ones).
Most of these have previously been published though some are perhaps new (if but straightforward modifications or extensions of existing ones).

Each algorithm comes with extensive tests demonstrating its usage and performance. For instance, `rskelf/tests/ie_circle.m` solves a second-kind Laplace boundary IE on the unit circle. At default settings, the problem is characterized by a *fully dense* square matrix of size $N = 16384$, which takes about 58 s to factor using MATLAB's `lu` at a storage cost of 2 GB. In contrast, `rskelf` requires just 0.7 s to compute an LU-like approximation to $10^{-12}$ precision, a speedup of about 80$\times$; once computed, the factorization needs only 9 MB in storage and can be used to execute solves in 0.04 s. Another exemplary test case is `hifde/tests/fd_square2.m`, which considers a Poisson DE on a very rough and high-contrast background field. Standard preconditioners such as `ichol` do not deal well with such severe ill-conditioning, but `hifde` remains highly effective, producing preconditioners that converge in just a handful of iterations. For more detailed performance analyses, we refer the reader to the cited literature above.

The provided functionality is somewhat similar to that offered by other software packages, but `FLAM` implements certain advanced methods like `hifie` and `hifde`, which to our knowledge are not publicly available elsewhere (though a close relative of `hifde` can be found in `STRUMPACK`). Furthermore, `FLAM` leverages a different core framework that we believe is considerably simpler and particularly well-suited to MATLAB's concise and readable style.

Expand Down

0 comments on commit 0e7d8a6

Please sign in to comment.