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.
make serial
./bin/serial matrices/A.mtx matrices/B.mtx matrices/F.mtx
make openmp
export OMP_NUM_THREADS=<threads>
./bin/openmp matrices/A.mtx matrices/B.mtx matrices/F.mtx
make openmpi
mpirun -n <processes>./bin/openmpi matrices/A.mtx matrices/B.mtx matrices/F.mtx
make hybrid
export OMP_NUM_THREADS=<threads>
mpirun -n <processes>./bin/openmpi matrices/A.mtx matrices/B.mtx matrices/F.mtx
To create random matrices:
mkdir matrices
cd test/
# edit the python file to choose the dimensions of the arrays
python mtxCreate.mtx
After successfully executing one of the available versions, for validation run:
cd test/
python spgemm.py