Here are my solutions to AUT Multicore Programming course (OpenMP and CUDA) assignments.
Instructor: Dr. M. Momtazpour
Semester: Spring 2021
List of some common highly parallelizable algorithms that have been implemented is:
- Matrix addition with both 1D and 2D decompositions - OpenMP (Lab2/matadd.cpp)
- 3 dimensional matrix multiplication - OpenMP (HW3/3DMatMul.cpp)
- Prefix sum (subarray prefix sum - Hillis and Steele) - OpenMP (Lab4)
- Matrix determinant by blocked right-looking LU factorization - OpenMP (HW4/Q3.cpp)
- Vector addition - CUDA (Lab5/vectorAdd.cu) - OpenMP and CUDA (HW5/Q9.cu)
- Matrix multiplication (baseline and tilting with shared memory) - CUDA (Lab6/matmul.cu)
- Reduction sum - CUDA (HW6/kernel.cu)
There is also a presentation about Java Threading which was presented by Radin Shayanfar and MohammadErfan Ghasemi in June 2021.
The instructions for each assignment are available alongside my reports in the assignment's directory.