A downloadable project for Windows

Download NowName your own price

For part two of my year 2 module Data Structures and Algorithms at university the task was to implement a parallelised algorithm to solve a problem. We had a choice of doing this on either the CPU or GPU.

For this project CPU multithreading was chosen. The program uses a pool of tasks. Each task consists of a segment of the final image with a height of 1 pixel and a width of the entire image. Worker threads then loop and pick up new tasks until the entire image has been processed. Notably, segments are traversed horizontally rather than vertically as this is more cache friendly and increases performance.

For the multithreading, conditional variables are used to signal waiting threads. Mutexes are used to ensure thread safety in the form of std::unique_lock.

The project has been successful at its goal and performance measurements are further detailed within the report.

Download

Download NowName your own price

Click download now to get access to the following files:

Executable 33 kB
Project Files 775 kB
Presentation 9 MB
Readme 28 bytes

Leave a comment

Log in with itch.io to leave a comment.