This study examined the performance of OpenMP and CUDA parallelization for Sparse matrix-vector multiplication (SpMV) on a hybrid CPU and GPU platform.
It implemented both programming models on a set of sparse matrices with varying sizes and densities.
The report is available at Medium: Article
The following code folders are included in this project:
- 'input' contains the input matrices in matrix market format
- 'output' contains the sparsity pattern of some output matrices
- 'src/CUDA' contains the CUDA code parallelization
- 'src/OMP' contains the OpenMP code parallelization
- 'src' contains the custom class and python script to run the code
- CMake
- CUDA
- OpenMP
- Python 3 (optional)
Each folder contains a CMakeLists.txt file to build the code. Each parallelization is built separately for testing purpose.
Python script have been provided to run all the configurations and generate the results.