Skip to content

A hydrib parallel implementation of sparse boolean matrix multiplication using OpenMP and OpenMPI

Notifications You must be signed in to change notification settings

thodkatz/sparse-bmm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel Sparse Boolean Matrix Multiplication

Boolean Matrix Multiplication, using a custom blocked data structure similar to the CSR/CSC, is implemented for three different parallel configurations: 1) OpenMP, 2) OpenMPI and 3) OpenMP/OpenMPI. More about the project can be found at this report.

Serial

make serial
./bin/serial matrices/A.mtx matrices/B.mtx matrices/F.mtx

OpenMP

make openmp
export OMP_NUM_THREADS=<threads>
./bin/openmp matrices/A.mtx matrices/B.mtx matrices/F.mtx

OpenMPI

make openmpi
mpirun -n <processes>./bin/openmpi matrices/A.mtx matrices/B.mtx matrices/F.mtx

Hybrid OpenMP/OpenMPI

make hybrid
export OMP_NUM_THREADS=<threads>
mpirun -n <processes>./bin/openmpi matrices/A.mtx matrices/B.mtx matrices/F.mtx

Input

To create random matrices:

mkdir matrices
cd test/

# edit the python file to choose the dimensions of the arrays
python mtxCreate.mtx 

Validation

After successfully executing one of the available versions, for validation run:

cd test/
python spgemm.py

About

A hydrib parallel implementation of sparse boolean matrix multiplication using OpenMP and OpenMPI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages