Hands-On Introduction to High Performance Computing

7 - 8 January 2020

This course provides a general introduction to High Performance Computing (HPC) using EPCC's national HPC service Cirrus as the platform for the exercises.

Familiarity with desktop computers is presumed but no programming, Linux or HPC experience is required. Programmers can however gain extra benefit from the course as source code for all the practicals will be provided.


David Henty

David teaches on a wide range of EPCC's technical training courses, including MPI and OpenMP, and is overall course organiser for EPCC's MSc in High Performance Computing.



High-performance computing (HPC) is a fundamental technology used in solving scientific problems. Many of the grand challenges of science depend on simulations and models run on HPC facilities to make progress, for example: protein folding, the search for the Higgs boson, and developing nuclear fusion.

The course will run for 2 days. The first day covers the the basic concepts underlying the drivers for HPC development, HPC hardware, software, programming models and applications. The second day will provide an opportunity for more practical experience, information on performance and the future of HPC. This foundation will give the you ability to appreciate the relevance of HPC in your field and also equip you with the tools to start making effective use of HPC facilities yourself.

The course is delivered using a mixture of lectures and hands-on sessions and has a very practical focus. During the practical sessions you will get the chance to use Cirrus with HPC experts on-hand to answer your questions and provide insight.

This course is free to all academics.

Intended learning outcomes

On completion of this course students should be able to explain:

  • Why HPC? - What are the drivers and motivation? Who uses it?
  • HPC Hardware - Building blocks and architectures
  • Parallel computing - Programming models and implementations
  • Using HPC systems - Access, compilers, resource allocation and performance
  • The Future of HPC


Attendees are expected to have experience of using desktop computers, but no programming, Linux or HPC experience is necessary.

Attendees should bring their own laptop (Windows/Mac/Linux) and with the required software installed:


Details are subject to change, but start, end and break times will stay the same.

Day 1

  • 09:30 Welcome, Overview and Syllabus
  • 09:45 LECTURE: Why learn about HPC?
  • 10:15 LECTURE: Image Sharpening?
  • 10:30 PRACTICAL: Sharpen example
  • 11:00 BREAK: Coffee
  • 11:30 LECTURE: Parallel Programming
  • 12:15 PRACTICAL: Sharpen (cont.)
  • 13:00 BREAK: Lunch
  • 14:00 LECTURE: Building Blocks (CPU/Memory/Accelerators)
  • 14:30 LECTURE: Building Blocks (OS/Process/Threads)
  • 15:00 LECTURE: Fractals
  • 15:10 PRACTICAL: Fractal example
  • 15:30 BREAK: Tea
  • 16:00 LECTURE: Parallel programming models
  • 16:45 PRACTICAL: Fractals (cont.)
  • 17:30 Finish

Day 2

  • 09:30 LECTURE: HPC Architectures
  • 10:15 LECTURE: Batch systems
  • 10:45 PRACTICAL: Computational Fluid Dynamics (CFD)
  • 11:00 BREAK: Coffee
  • 11:30 PRACTICAL: CFD (cont.)
  • 12:30 LECTURE: Compilers
  • 13:00 BREAK: Lunch
  • 14:00 PRACTICAL: Compilers (CFD cont.)
  • 14:30 LECTURE: Parallel Libraries
  • 15:00 LECTURE: Future of HPC
  • 15:30 BREAK: Tea
  • 16:00 LECTURE: Summary
  • 16:15 PRACTICAL: Finish exercises
  • 17:00 Finish

Tea and coffee will be available during the scheduled breaks, but lunch will not be provided - there are numerous places for lunch very close to the training venue.

Course Materials

Links to the draft Slides and exercise material for this course.


The course will be held at University of Edinburgh, Bayes Centre


Please use the registration page to register for ARCHER courses.


If you have any questions please contact the ARCHER Helpdesk.