Skip to content

Performance tests for parallel matrix multiplication algorithms

License

Notifications You must be signed in to change notification settings

nirogu/parallel-matrix-multiplication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel matrix multiplication

Performance tests for parallel matrix multiplication algorithms.

Usage

  1. Install the required python libraries, found in requirements.txt. The following command shows how to do it using pip, but conda or any package manager can also be used.
pip install -r requirements.txt
  1. Build the matrix multiplication executables using make.
cd MatMult
make
  1. Run the experiments using the launcher.
cd ..
python launcher.py experiments.csv
  1. Generate the graphics, using the results of the experiments from every machine.
python graphics.py experiments1.csv experiments2.csv experiments3.csv -o img/

Results

The experimentation results are summarized in the following figures.

Matrix size vs Time line plot Threads vs Time line plot Matrix size vs Threads heatmap Matrix size vs Threads heatmap

In this case, the experiments were run in 3 different machines:

  • A ml.c5.9xlarge AWS instance, with 36 vCPUs and 72 GiB RAM.
  • A ml.m5.8xlarge AWS instance, with 32 vCPUs and 128 GiB RAM.
  • A ml.r5.8xlarge AWS instance, with 32 vCPUs and 128 GiB RAM.

Every matrix size - number of threads combination was executed 30 times, in order to make the experiments statistically significant. The values in the graphics represent the mean values of those 30 repetitions.

Metrics

The following metrics summarize the experimentation results, regarding the algorithms performance for different number of threads:

  • Speed up: $$Sp = \frac{t_{serial}}{t_{parallel}}$$

SpeedUp

  • Efficiency: $$Ep = \frac{Sp}{p}$$

Efficiency

About

Performance tests for parallel matrix multiplication algorithms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published