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
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
.mtx
files, 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)
- The sparse matrix storage format of
A
is CRS. - Only left-preconditioning is implemented.
- This code is mainly for performance investigations.