M3C: Introduction to High Performance Computing

Autumn, 2017

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
Office hours in MLC: Mondays 5-6pm, Thursdays 4-5pm (starting from 9/10)

Announcements (last updated 23/1/18)

Please fill out the short course feedback form here
Final project marks have been posted on Blackboard, solutions are online here: M3C 2017 Final Project Solution

Installing software

It is beneficial if you run example codes from the class on your own laptops or desktops. Instructions for installing software are available here: Downloading and installing software for this class.


Lectures: Mondays and Thursdays, 11am-12pm, Huxley 340
Labs: Tuesdays 5-6pm, MLC (Huxley, level 4); Wednesdays 10-11am


1. Students attending the Wednesday 10am lab must bring their own laptops with the needed software (for that lab) already installed.

2. Students with their own laptops are strongly encouraged to attend the Wednesday 10am session.