You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-10Lines changed: 9 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,26 +4,25 @@
4
4
5
5
**Instructor: Alireza Olama**
6
6
7
-
## Homework Assignment 2: Optimizing Matrix Multiplication in C++
7
+
## Homework Assignment 4: Optimizing Matrix Multiplication in C++
8
8
9
-
**Due Date**: 08/05/2025
9
+
**Due Date**: 31/05/2026
10
10
11
11
**Points**: 100
12
12
13
13
---
14
14
15
15
### Assignment Overview
16
16
17
-
Welcome to the second homework assignment of the Parallel Programming course! In Assignment 1, you implemented a naive
18
-
matrix multiplication using a triple nested loop. In this assignment, you will optimize the performance of your naive
17
+
Welcome to the last homework assignment of the Parallel Programming course! In this assignment, you will optimize the performance of a naive matrix multiplication
19
18
implementation using two techniques:
20
19
21
20
1.**Cache Optimization via Blocked Matrix Multiplication**: Improve data locality to reduce cache misses.
22
21
2.**Parallel Matrix Multiplication using `OpenMP`**: Parallelize the computation across multiple threads.
23
22
24
23
Your task is to implement both optimizations in the provided C++ `main.cpp` file, measure their performance, and compare the
25
24
wall clock time of the naive, cache-optimized, and parallel implementations for each test case. This assignment builds
26
-
on your Assignment 1 code, so ensure your naive implementation is correct before starting.
25
+
on naive matmul implementation, so ensure your naive implementation is correct before starting.
27
26
28
27
---
29
28
@@ -130,9 +129,9 @@ Example table format:
130
129
131
130
#### Matrix Storage and Memory Management
132
131
133
-
-Continue using row-major order for all matrices, as in Assignment 1.
132
+
-Row-major order for all matrices
134
133
- Use C-style arrays with manual memory management (`malloc` or `new`, `free` or `delete`).
135
-
- Do not use STL containers or smart pointers.
134
+
- Do not use smart pointers.
136
135
137
136
---
138
137
@@ -157,8 +156,8 @@ Example table format:
157
156
- Use CLion or Visual Studio with CMake.
158
157
- Alternatively, use MinGW with `cmake -G "MinGW Makefiles"` and `make`.
159
158
-**Linux/Mac Users**:
160
-
- Make sure gcc compiler is installed (`brew install gcc` on Mac).
161
-
- Configure cmake to use the correct compiler:
159
+
- Make sure the GCC compiler is installed (`brew install gcc` on Mac).
0 commit comments