This is a collection of documents aiming to introduce the environment and typical workflows in HPC systems. The tutorial addresses — and should be useful for — the University of Bristol High Performance Computing course. Note, however, that we likely cover more material than is directly relevant for the assignments—just because a technique or issue is mentioned in this tutorial, it does not mean that you necessarily need to tackle it in your submitted code or report.
This repository aims to serve both as introductory material for the course labs and as reference to be used throughout the assignment. When reading this material for the first time, we suggest that you follow the ordering presented in the section below and try the commands and code yourself. However, each page aims to be self-contained and cover its topic without relying on a specific reading order.
If you are unfamiliar with HPC systems, it's worth covering the basics of connecting to and using as supercomputer before moving on to programming tools. We suggest you go through this tutorial as follows:
- Prerequisites – Please read this first!
- Connecting to BlueCrystal
- Software Modules and BlueCrystal
- Queueing Systems
- HPC Compilers
- Performance Analysis Tools
- OpenMP
- MPI
- OpenCL†
Note that this is not required reading per se. The purpose of this tutorial is to help you get started with your assignment, but as long as you acquire the necessary skills to complete the unit, feel free to skip sections or use any alternative or additional material.
Items marked with † cover advanced topics and may exceed the scope of the Introduction course.
In addition to the reference pages, we are collecting answers to common questions in a dedicated FAQ page. If you encounter a problem, please check this page before asking a question to see if an answer isn't already available.
In the past, we have used various content that you may find useful throughout the unit. The list below is in no particular order.
- OpenMP and MPI Examples on GitHub
- OpenMP Tutorial Videos by Tim Mattson @ Intel
- GPU Programming Examples on GitHub (likely relevant for Advanced HPC only)
In addition, there are many books and links to online resources on the unit's BlackBoard page.
Please report any problems or mistakes and suggest any potential improvements using Issues.