Developing online self-service HPC courses

28 February 2023

As part of our work with the EuroCC project we looked at a range of technologies which would be suitable for developing online self-service HPC courses. We had previously used a range of different approaches for online teaching, starting before the pandemic, but were looking for new approaches to make our HPC material as open and accessible as possible to a wide range of learners and lecturers.

Our target was a "Hands-On Introduction to HPC" course that would have a range of recorded lectures, articles and practical exercises. Most importantly we wanted other HPC centres to be able to run their own instances of the course, with exercises tailored to their own users and local HPC systems.

It is important to note that we were interested in self-service courses where learners study online material (eg articles or pre-recorded videos) in an asynchronous manner, perhaps with some support from other learners or designated tutors via chatboards. For synchronous online delivery, where a lecturer presents material live and learners can interact through chat, video or screen-sharing, platforms such as Zoom have proved very useful. Here at EPCC we use Blackboard Collaborate as it is fully supported through the University of Edinburgh's Learn Virtual Learning Environment (VLE), but it has similar functionality to Zoom.

Previous experiences

We already had experience of a number of approaches:


Blackboard Learn is the University's VLE and we use it for all accredited courses including our MSc in HPC programmes. It integrates closely with the student record system, which is ideal for an MSc programme, but this does restrict access to fee-paying students. Learn courses can be made open, a facility we use for our free self-service ARCHER2 courses on parallel programming, but this does not make the material easily available to other lecturers. Learn is a proprietary product so it would be difficult for another HPC centre to have its own instance of an entire course even if it had access to all the individual source material.


Funded through our PRACE Training Centre, we previously developed a Supercomputing MOOC (Massively Open Online Course) under the FutureLearn platform, which has been studied by many thousands of users.

Although this provides a very professional look-and-feel that is designed to promote interaction between students, it is another proprietary platform so does not enable the material to be shared with other lecturers. This course was also purely conceptual with no practical exercises, and it is not clear how programming exercises could easily be accommodated into FutureLearn.


Carpentries courses, such as Software Carpentry, have all the material stored online in a git repository with web pages created by standard templates and it is easy to run a course with content tailored to local requirements and provide access to source code.

However, Carpentries courses are designed to be delivered face-to-face to a live audience and are generally aimed at novice users rather than those with existing programming experience. Although the courses can easily be run online, the format does not lend itself to self-service courses as it is designed to be studied by following the material at the same pace as a live instructor.


We became aware of the CodeRefinery project through one of the other EuroCC NCCs (National Competency Centres) - NCC Sweden - which is actively involved in its development. It is based on the Carpentries model, but has a more modern look-and-feel and is designed for competent practitioners rather than novices, which better fits our HPC target audience.

Although designed for synchronous delivery, the way that the material is laid out with easy navigation between sections makes it very suitable for self-service courses. What was missing was the ability to embed videos, but NCC Sweden kindly provided us with a simple way to do this.

Like Carpentries, the CodeRefinery template is easily configurable. For example, it enables material to be conditionally included based on the values of environment variables so it will allow us to maintain many versions of our HPC course (dependent on target platform) in a single location but deploy a particular instance with minimal changes. Our hope is that this will allow HPC centres to easily contribute their own local developments to the main repository.


We have found it straightforward to put existing HPC material – articles, videos and practical exercises – into the CodeRefinery template. We are developing versions for two platforms hosted by EPCC, Cirrus and ARCHER2, so we can check that the local configuration options work as expected.

The initial version of the course is in beta testing, but as soon as that is complete we will make it externally available. Keep an eye on the ARCHER2 training pages for updates!

EuroCC website



Dr David Henty
David Henty