In CS61C 2020 Fall, Project 4 was called "Numc". It was an assignment focused on optimizing matrix operations in C, similar to how libraries like NumPy work.
Project Summary For Project 4, I implemented a custom matrix library, numc, from scratch. The primary goal was to make the matrix operations as fast as possible by applying various optimization techniques learned in class. This included using SIMD (Single Instruction, Multiple Data) instructions, OpenMP for parallel processing, and other low-level optimizations to improve performance.
The project required you to implement a series of fundamental matrix operations, such as matrix multiplication, and ensure they ran efficiently. You then had to pass a series of performance benchmarks to get full credit. It was a significant project that tested your understanding of data-level and thread-level parallelism in a practical context.