M3C: Introduction to High Performance Computing

Autumn, 2018

This is a practical course on effectively using computers to solve scientific-computing problems in applied mathematics, engineering, and the physical sciences.


The importance of scientific computing has been rapidly increasing in all areas of science and engineering. Examples of important fields that require large-scale computation include data science, climate simulation, and Formula One aerodynamics. It is essential for students to learn how to write efficient programs that take full advantage of the (often substantial) computational power available to them. Traditionally, teaching in this area has focused on compiled languages (Fortran, c, …) and easier-to-use tools such as Matlab. However, these days most laptops (and phones!) use multicore processors, and a strong foundation in parallel computing is needed as well. This course blends the traditional and “modern” approaches and introduces students to scientific computing with Python and Fortran 90, and parallel computing with OpenMP and MPI.

The course will consist of two lectures and one lab session per week (3 hours total/week). Additionally, there will be 3 programming assignments, and a final project. By the end of the course, students will be prepared to tackle research problems using the tools of modern high-performance scientific computing in an informed, effective, and efficient manner.


Prasun Ray
Teaching Fellow
Department of Mathematics
Huxley 6M20