The High Performance Computing and Numerical Projects course focused on C-based programming, aiming at enhancing the performance of computational code. The premise was largely built around scientific computations involving iterative progresses.
A significant portion of the course got into the nitty-gritty of machine hardware. Understanding how memory is stored, correlating it with cache hits & misses, and leveraging these principles during serial programming formed the crux of this segment. Strategies like loop-unrolling were learned to optimize code performance.
Diving deeper into the course, parallel optimization took the spotlight, exploring libraries like OpenMP and MPI. This part of the curriculum delved into the intricacies of parallel computing, with a strong emphasis on mastering thread communication—recognizing it as a critical component for good parallel programming.