Performance tests for parallel matrix multiplication algorithms.
- Install the required python libraries, found in
requirements.txt
. The following command shows how to do it usingpip
, butconda
or any package manager can also be used.
pip install -r requirements.txt
- Build the matrix multiplication executables using
make
.
cd MatMult
make
- Run the experiments using the launcher.
cd ..
python launcher.py experiments.csv
- Generate the graphics, using the results of the experiments from every machine.
python graphics.py experiments1.csv experiments2.csv experiments3.csv -o img/
The experimentation results are summarized in the following figures.
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.
The following metrics summarize the experimentation results, regarding the algorithms performance for different number of threads:
- Speed up:
$$Sp = \frac{t_{serial}}{t_{parallel}}$$
- Efficiency:
$$Ep = \frac{Sp}{p}$$