# 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.

## Overview¶

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.

## Instructor¶

## Announcements (last updated 23/1/18)¶

## 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.

## Assessment¶

## Timetable¶

**Notes**:

possible.

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.