This repository is for comparing sparse linear algenra codes generated by Sympiler with other exisiting frameworks/libraries. It also provides an example set up for the Sympiler generated code. We are adding parallel kernels one by one and this is a work in progress. The current status:
- Sparse lower triangular solver
- Sparse supernodal Cholesky factorization.
- Sparse upper triangular solver
- Sparse incomplete Cholesky zero
- Sparse incomplete LU zero
- Sparse matrix-vector multiplication
- Preconditioned GMRES
- Sparse Gauss-Seidel
- Sparse non-supernodal Cholesky
- Sparse supernodal LDL factorization
- Sparse simplicial (non-supernodal) LDL factorization
git clone --recursive https://github.com/sympiler/sympiler-bench.git
cd sympiler-bench
cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
cmake --build build --config Release -j 6
You will need to set currect options, e.g. BLAS type. You can follow the sympiler installation instructions. One example script is provided here
The current added tools/libraries are:
Sympiler: the dependency is already resolved by CMake.
MKL Library: CMake can find MKL if it is on the system path
or MKLROOT
is set properly.
SuiteSparse: If you install suitesparse and set SUITEROOT
to where
suitesparse is installed, then CMake can detect it.
Pardiso: The path to Pardiso library should be in PARDISO_LIB
.
The Pardiso library that is used in the demo is pardiso600-GNU720-X86-64
.
Pardiso also needs lapack
library as a dependency.