ut-padas / rchol

directory for randomized cholesky
Other
17 stars 4 forks source link

Overview

rchol is a C++ library that implements a randomized incomplete Cholesky factorization. rchol is provably effective for SDDM matrices (Symmetric and Diagonally Dominant M-matrices), but can be tested on any SPD matrix. It uses OpenMP for shared memory parallelism on x86 architectures. We do not support GPUs. Factorizing the discrete Laplacian matrix on a 1024x1024x1024 grid with standard 7-point stencil, which has one billion unknowns, takes about 3 minutes/180 seconds using 64 threads.

The underlying algorithm is based on Daniel Spielman's Julia implementation of a randomized incomplete factorization for graph Laplacians.

The corresponding paper that describes the details can be found here.

Dependencies: The only dependency is the METIS library. METIS is required for shared-memory parallelism.

Directory structure

At each directory, please check the README and makefile files.

Authors

Tianyu Liang
Chao Chen (chenchao.nk@gmail.com)
George Biros (advisor)

Funding

This project is partially funded by NSF award CCF-1817048; and by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Applied Mathematics program under Award Number DE-SC0019393, by the U.S. Department of Energy, National Nuclear Security Administration Award Number DE-NA000396 (PSAAP III). Computing time on the Texas Advanced Computing Centers Stampede system was provided by an allocation from TACC and the NSF.