SparseX

[About]

SparseX is a library for the optimization of the Sparse Matrix-by-Vector multiplication kernel (SpMV) on modern multicore architectures. It is based on the Compressed Sparse eXtended (CSX) sparse matrix storage format [TPDS13] and has a BLAS-style C interface that can be easily integrated in solver libraries or used in standalone applications. It is mainly targeted for the solution of large sparse linear systems using iterative methods, e.g. Krylov subspace methods including CG and GMRES. For more information on the design of the CSX format visit our talk at NTNU “Alleviating memory-bandwidth limitations for scalability and energy efficiency”.

[Performance]

The SparseX library achieves a stable high performance on a wide variety of matrices and platforms (both SMP and NUMA).

spmv_flops_smp_web

 spmv_flops_numa_web

spmv_speedup_smp_webspmv_speedup_numa_web

[Ready to use]

SparseX is an open-source library distributed under the BSD Licence. The latest version of the code can be found on github.

[Support]

sparsex-support [AT] cslab [DOT] ece [DOT] ntua [DOT] gr

User’s Guide