Skip to content

Benchmark the performance of the parallel matrix multiplication methods

License

Notifications You must be signed in to change notification settings

esteban-gasan/parallel-matrix-multiplication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel Matrix Multiplication

This project contains different ways to improve the performance of the matrix multiplication algorithm. We take two matrices of size n*n with random filled values and calculate their multiplication, we then compare the CPU time taken to complete only this task in both, the sequential and the parallel implementation.

Each subdirectory inside the main directory is like a project on its own, in each one, we try different approaches like threads, processes, optimizations, etc. They also have a similar structure:

  • bin/ where the binary files are stored.
  • results/ includes the .csv files that contain the CPU time and other data.
  • sequential.c the sequential implementation of the algorithm.
  • parallel.c the parallel implementation.
  • matrix_functions.h common functions used by the .c files.
  • run.sh a bash script to run the tests.

Installation

A UNIX-based system is required since many libraries don't work on Windows, however, you can install WSL on Win10.

Install the gcc compiler:

sudo apt-get install gcc

Usage

Inside any bin/ directory, to execute the files run the commands:

  • For seq, type ./seq <n>, replace n with the number of rows.

    ./seq 1000

    Some files will requiere an additional argument for the multiplication type: 0 for normal or 1 for row wise multiplication.

    ./seq 1000 1
  • For par, type ./par <n> <threads>, replace threads with the number of threads to use.

    ./par 1000 4

If you want to compile the code again on your machine, check the run.sh files to see the commands used.

About

Benchmark the performance of the parallel matrix multiplication methods

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published