Skip to content

DanecLacey/basic_iterative_solvers

Repository files navigation

basic_iterative_solvers

This is a set of (preconditioned) iterative solvers for Ax = b, where A is typically assumed to be a large sparse matrix.

Usage Examples

./basic_iterative_solvers HPCG-128.mtx -cg
./basic_iterative_solvers Anderson,Lx=100,Ly=100,Lz=50,ranpot=5.0 -gm -p gs

Building basic_iterative_solvers

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

Features

  • 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

Supported Solvers

  • Jacobi -j
  • (Forward/Symmetric) Gauss-Seidel -gs / -sgs
  • (Preconditioned) Conjugate-Gradient -cg
  • (Preconditioned) (Restarted) GMRES -gm
  • (Preconditioned) BiCGSTAB -bi

Supported Preconditioners

  • Jacobi -p j
  • (Forward/Backward/Symmetric) Gauss-Seidel -p (gs/bgs/sgs)

Notes

  • The sparse matrix storage format of A is CRS.
  • Only left-preconditioning is implemented.
  • This code is mainly for performance investigations.

About

A set of (preconditioned) iterative solvers for Ax = b

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •