(2024/2025) Advanced Methods for Scientific Computing
Unlike the other courses, I haven’t taken any notes for this one because it’s essentially a deep dive into the C++ language and its libraries, such as MPI and OpenMP. It is also a very practical course in which you will have to write code to solve mathematical and scientific problems.
For the final exam, however, I collaborated with my colleagues to create an educational “library” (note the quotation marks), which contains an $N$-dimensional Fast Fourier Transform (FFT) implementation of the Cooley-Tukey algorithm in C++ using OpenMP. It also includes Discrete Cosine Transform (DCT) and Haar Wavelet Transform (HWT) implementations, which are applied to image and signal compression.
You can find the project and its examples here: Signal Processing Library
Course Syllabus
According to the official course syllabus:
- An overview of computing tools:
- An overview of the C++ language, focusing on its functional components;
- Message passing paradigm: parallel programming using MPI, with examples;
- Shared memory paradigm: parallel programming with openMP, with examples;
- Main libraries for scientific computing.
- The development of numerical software: some examples of topical numerical methods will be selected, explained, and solved by the students under the guidance of the instructors. Possible examples include:
- Solving non-linear systems of equations;
- Dynamical systems;
- Multidimensional numerical quadrature;
- Methods for numerical optimization.