Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
81 lines (61 sloc) 2.12 KB


Sympiler is a code generator for transforming sparse matrix methods. To access the list of publication and resources please visit:

ParSy is parallel version of Sympiler. The evaluation benchmark for ParSy is available from ParSy_bench repository:


Library requirements

Sympiler does not need any external library however for testing the Sympiler-generated code, Suitesparse and Intel MKL libraries are required.

Building Sympiler

cd where/you/cloned/Sympiler
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make sympiler_proj

Building the Sympiler tests

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/

This will build the two remaining parts of the project including Sympiler tests for both Cholesky and Triangular solve.

Matrix dataset

In order to download and generate the matrices, the following commands need to be ran.

cd ..
mkdir matrixDB
./scripts/ matrixDB/ build/libTest/cholesky/TriangGen

After downloading and generating the required matrices you can evaluate Sympiler.

Evaluating 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

Triangular solve

./build/symTest/triangular/SymTriang matrixDB/triangular/<MATRIX NAME>_trns.mtx

Source Tree Description


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.