This is a set of (preconditioned) iterative solvers for Ax = b
, where A
is typically assumed to be a large sparse matrix.
./basic_iterative_solvers HPCG-128.mtx -cg
./basic_iterative_solvers Anderson,Lx=100,Ly=100,Lz=50,ranpot=5.0 -gm -p gs
git clone [email protected]:DanecLacey/basic_iterative_solvers.git
cd basic_iterative_solvers
make
- All user-defined solver parameters and configuration options can be found in
config.mk
- Stacked timers around key code regions
- Optional code instrumentation with
likwid
markers for collecting hardware performance counters already built-in (https://github.com/RRZE-HPC/likwid) - Matrices can be read from
.mtx
files, or generated withSCAMAC
library (https://alvbit.bitbucket.io/scamac_docs/index.html)
- Richardson
-r
- Jacobi
-j
- (Forward/Symmetric)Gauss-Seidel
-gs / -sgs
- (Preconditioned) Conjugate-Gradient
-cg
- (Preconditioned) (Restarted) GMRES
-gm
- (Preconditioned) BiCGSTAB
-bi
- Jacobi
-p j
- (Forward/Backward/Symmetric/FFBB) Gauss-Seidel
-p (gs/bgs/sgs/ffbbgs)
- The sparse matrix storage format of
A
is CRS. - Only left-preconditioning is implemented.
- This code is mainly for performance investigations.