These courses enable users to get on our systems, be able to modify or create research code, and then run it. This is an introduction knowledge level pathway. It is expected that this is suit able for first and second year PhD Students.

Learn to submit, manage, and monitor jobs efficiently while making effective use of shared computational resources.

Running Jobs on HPC Systems, will teach you how to use SLURM, the batch scheduling system widely used across High-Performance Computing (HPC) systems, including DiRAC facilities.

What you will learn:

  • Understand how batch scheduling systems operate on HPC platforms
  • Submit and manage jobs using Slurm
  • Create and use job submission scripts
  • Configure the correct runtime environment for your applications
  • Monitor job progress and resource usage
  • Use HPC resources efficiently and fairly within a shared environment

By the end of the course, you will be able to run applications confidently on HPC systems, ensuring that your jobs are configured correctly and make effective use of available resources.

This course is ideal for new HPC users seeking a clear understanding of batch systems and job submission workflows before starting computational research on DiRAC services or other HPC platforms.

As part of the HPC Developer series*, this course will help you understand the role of batch queuing systems, create effective job scripts, and ensure your applications run efficiently while making responsible use of shared computational resources.

Completing the full Foundation HPC Skills series is a requirement for progression into the HPC Developer series.

* The HPC Developer series covers a wide range of topics, including core programming languages such as C, as well as essential HPC tools and technologies such as Slurm, MPI, and OpenMP, equipping learners with the knowledge required to effectively utilise modern HPC systems.

Skill Level: Beginner

Work through these mini-lectures and accompanying exercises to deepen your understanding of key topics such as:

  • the von Neumann architecture
  • cache memory
  • vectorisation
  • Flynn’s taxonomy
  • MPI
  • GPUs
  • the Roofline model
  • shared-memory parallel paradigms
  • strong and weak scaling.

Developed by Durham University as part of the HAI-End project, this set of revision materials is designed to help participants quickly revisit essential terminology and foundational concepts, and to support workshops and practical sessions on performance analysis in High-Performance Computing (HPC).

Its flexible design allows you to build your own personalised learning pathway by choosing any topic of interest to begin your learning journey. Based on your selection, the knowledge graph will recommend prerequisite sessions to review, as well as subsequent sessions to support your continued progression.

As part of the HPC Developer series*, this course will strengthen your understanding of these fundamental building blocks, enabling a clearer and more comprehensive perspective for analysing the performance of your code.

Completing the full Foundation HPC Skills series is a requirement for progression into the HPC Developer series.

* The HPC Developer series covers a wide range of topics, including core programming languages such as C, as well as essential HPC tools and technologies such as Slurm, MPI, and OpenMP, equipping learners with the knowledge required to effectively utilise modern HPC systems.

Skill Level: Beginner

Gain practical experience with modern parallel programming techniques and learn the core principles of parallel programming, including how to combine OpenMP and MPI to create hybrid parallel applications by diving into “Directive Programming for HPC”.

What you will learn:

  • Understand the fundamentals of parallel computing and parallel paradigms
  • Explore shared and distributed memory models
  • Design algorithms for parallel execution
  • Use OpenMP directives such as parallel and for
  • Manage shared and private variables effectively
  • Identify and avoid race conditions
  • Apply synchronisation techniques, including barriers, locks, and atomics
  • Use scheduling strategies to improve performance
  • Run and optimise hybrid applications using MPI and OpenMP together

By the end of the course, you will be able to develop, run, and optimise shared-memory and hybrid parallel applications, enabling more effective use of HPC systems and computational resources.

As part of the HPC Developer series*, this course will help you develop practical skills in identifying and parallelising sections of code, enabling multiple threads to execute concurrently within a shared-memory model while optimising the use of computational resources.

Completing the full Foundation HPC Skills series is a requirement for progression into the HPC Developer series.

* The HPC Developer series covers a wide range of topics, including core programming languages such as C, as well as essential HPC tools and technologies such as Slurm, MPI, and OpenMP, equipping learners with the knowledge required to effectively utilise modern HPC systems.

Skill Level: Intermediate