Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add multithreaded matmul-c implementation #40

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

llewelld
Copy link
Contributor

Adds a CPU-parallel matrix multiplication implementation using a threadpool. Parallelism is intra-matrix (i.e. different parts of a single matrix-multiply operation are performed on different threads) so that threading is transparent to the caller.

@llewelld llewelld force-pushed the matmul-c-threaded branch 6 times, most recently from 7c7dfbb to 67b631e Compare April 26, 2024 09:10
@llewelld llewelld force-pushed the matmul-c-threaded branch from 67b631e to 3802c92 Compare May 19, 2024 09:35
@llewelld llewelld marked this pull request as ready for review May 19, 2024 10:05
@llewelld llewelld force-pushed the matmul-c-threaded branch from 3802c92 to 1148f74 Compare May 19, 2024 22:31
@llewelld llewelld force-pushed the matmul-c-threaded branch from 1148f74 to 96bc982 Compare May 20, 2024 14:51
@llewelld
Copy link
Contributor Author

Rebased.

@llewelld llewelld requested a review from mhauru May 20, 2024 14:52
@llewelld llewelld force-pushed the matmul-c-threaded branch from 96bc982 to ea63cb1 Compare August 9, 2024 08:01
@llewelld
Copy link
Contributor Author

llewelld commented Aug 9, 2024

Rebased.

@llewelld
Copy link
Contributor Author

It's no big deal to have this lingering, but for the sake of keeping things tidy, if anyone fancies reviewing this, please feel free.

@mhauru
Copy link
Contributor

mhauru commented Dec 13, 2024

I doubt I'll find time in the near future, sorry :(

@llewelld
Copy link
Contributor Author

No worries; thanks @mhauru.

Adds a CPU-parallel matrix multiplication implementation using a threadpool.
Parallelism is intra-matrix (i.e. different parts of a single
matrix-multiply operation are performed on different threads) so that
threading is transparent to the caller.
Refeactos the codebase to split the tests and benchmarks into separate
files. Adds some large matrix multiplication benchmarks for the serial
and parallel implementations.
Updates the matmul-c square matrix scaling tests to align with mhauru's
Julia tests.

The benchmarks now perform 19 test with increasingly large square
matrices. Single-threaded and multi-threaded matrix multiplication tests
are both performed. The results are stored in the same results.csv file
so that everything can be plotted together.
@llewelld
Copy link
Contributor Author

Rebased.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants