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 gsgit clone git@github.com:DanecLacey/basic_iterative_solvers.git
cd basic_iterative_solvers
mkdir build && cd build
cmake .. -DCMAKE_CXX_COMPILER=<CXX> -DCMAKE_PREFIX_PATH=install_path (if using TPLs)
make- Stacked timers around key code regions
- Optional third party libraries:
- Instrumentation with likwid markers for collecting hardware performance counters already built-in around native kernels
- Matrices can be read from
.mtxfiles, or generated with the SCAMAC library - Integration with SmaxKernels library for optimized sparse kernel implementations
- 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) Gauss-Seidel
-p (gs/bgs/sgs) - (Thresholded) Incomplete LU
-p ilu(0/t)
- We strive to follow the C++ Core Guidelines
- The sparse matrix storage format of
Ais CRS. - Only left-preconditioning is implemented.
- This code is mainly for performance investigations.

