Skip to content

Commit 7078894

Browse files
authored
Update README for Homework Assignment 4 details
1 parent 19c605d commit 7078894

1 file changed

Lines changed: 9 additions & 10 deletions

File tree

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,25 @@
44

55
**Instructor: Alireza Olama**
66

7-
## Homework Assignment 2: Optimizing Matrix Multiplication in C++
7+
## Homework Assignment 4: Optimizing Matrix Multiplication in C++
88

9-
**Due Date**: 08/05/2025
9+
**Due Date**: 31/05/2026
1010

1111
**Points**: 100
1212

1313
---
1414

1515
### Assignment Overview
1616

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
1918
implementation using two techniques:
2019

2120
1. **Cache Optimization via Blocked Matrix Multiplication**: Improve data locality to reduce cache misses.
2221
2. **Parallel Matrix Multiplication using `OpenMP`**: Parallelize the computation across multiple threads.
2322

2423
Your task is to implement both optimizations in the provided C++ `main.cpp` file, measure their performance, and compare the
2524
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.
2726

2827
---
2928

@@ -130,9 +129,9 @@ Example table format:
130129

131130
#### Matrix Storage and Memory Management
132131

133-
- Continue using row-major order for all matrices, as in Assignment 1.
132+
- Row-major order for all matrices
134133
- 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.
136135

137136
---
138137

@@ -157,8 +156,8 @@ Example table format:
157156
- Use CLion or Visual Studio with CMake.
158157
- Alternatively, use MinGW with `cmake -G "MinGW Makefiles"` and `make`.
159158
- **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).
160+
- Configure CMake to use the correct compiler:
162161
```bash
163162
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .
164163
```
@@ -235,4 +234,4 @@ git push origin student-name
235234
- Validate each implementation against `output.raw` to ensure correctness before optimizing.
236235
- Use small test cases to debug your blocked and parallel implementations.
237236

238-
Good luck, and enjoy optimizing your matrix multiplication!
237+
Good luck, and enjoy optimizing your matrix multiplication!

0 commit comments

Comments
 (0)