Sparse Matrix Vector Multiplication

Version's name: Sparse Matrix Vector Multiplication ; a version of the Sparse Matrix Vector Multiplication (SPMxV) program.
Repository: [home] and version downloads: [.zip] [.tar.gz] [.tar.bz2] [.tar]

Currently, there is only one Version of this kernel that was used for the comparison of different compilers and architectures. It is implemented with the CSR and the Ellpack data structure fpr sparse matrices. The kernel is not optimized for any hardware to enable a fair comparison between different architectures and compilers.

Build and run

This kernel requires a C++ compiler with OpenMP capability. To build this kernel use:

make

To run the executable you can use the predefined targets of the make file

make run-small  # to run with a small matrix
make run-large  # to run with a large matrix
make run-verylarge   # to run with a very large matrix exeeding most common matrices
make run-noL3  # to run with a matrix just above 100MB size in memory, exeeding most L3 caches of CPUs (smaller than verylarge)

Also you may run the executable directly with

./spmxv.exe -t <number of threads> -f <input matrix>

For more options run ```shell ./spmxv.exe –help

The following experiments have been registered: