Sympiler is a code generator for transforming sparse matrix methods. To access the list of publication and resources please visit: http://www.sympiler.com/
ParSy is parallel version of Sympiler. The evaluation benchmark for ParSy is available from ParSy_bench repository: https://github.com/cheshmi/parsy_bench
Sympiler does not need any external library however for testing the Sympiler-generated code, Suitesparse and Intel MKL libraries are required.
cd where/you/cloned/Sympiler
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make sympiler_proj
The first step is to set the environmental variables corresponding to each library. The following shows how the variables are set in bash.
export MKLROOT <path to MKL>
export SUITEROOT <path to Suitesparse>
After setting the library paths:
cd where/you/cloned/Sympiler/build/
make
This will build the two remaining parts of the project including Sympiler tests for both Cholesky and Triangular solve.
In order to download and generate the matrices, the following commands need to be ran.
cd ..
mkdir matrixDB
./scripts/dlMat.sh matrixDB/ build/libTest/cholesky/TriangGen
After downloading and generating the required matrices you can evaluate Sympiler.
After build is done successfully, the following commands can be used to evaluate Sympiler generated code:
./build/symTest/cholesky/symChol matrixDB/<MATRIX NAME>.mtx matrixDB/ccache/rajat21.mtx
./build/symTest/triangular/SymTriang matrixDB/triangular/<MATRIX NAME>_trns.mtx
The scripts to download the matrices used in the paper.
The Sympiler-generated code is stored here by default and is used for testing Sympiler in symTest folder.
This folder contains the source of Sympiler. Running this code generates code for a specific sparsity.
This folder tests the Sympiler-generated code for a given matrix.