Skip to main content

GPU Programming Workshop Series 2024

GPU Programming Workshop Series 2024

Over fifty percent of the supercomputers in the TOP500 list are now equipped with GPUs, and their share in total compute power is growing. For software to benefit from these massively parallel processors, developers have to gain an understanding of GPU architectures, available programming models and performance optimization techniques. The objective of this course is to provide research software engineers with an overview over GPU architecture principles and different GPU programming approaches. They learn “what is on the market”. Afterwards, they will be available to make an informed decisions which programming model to pick for their code, will have first quick n dirty prototypes up and running, and hence be able to start porting their applications to GPUs.

Basic Information

Date: 9 January 2024 – 1 February 2024
Delivery: Hybrid. Participants can decide per session if they want to attend in-person.
Audience: This workshop series is made for groups of developers who want to acquire an overview over various ways how to GPUise their code base.
Format: Tuesday sessions will be delivered as 1-hour lectures, while Thursday sessions will be full-day workshops with the opportunity to apply the newly gained skills to your own research code. We expect each participant/group to bring along their own research code and to participate in all full-day workshops.
Location: Department of Computer Science at Durham University and zoom

Course Content

Tuesday, 9th of  January 2024 (participation optional; virtual only):  GPU architecture and programming model (Laura Morgenstern, Durham University) – 16:00-17:00

Thursday, 11th of  January 2024: GPU Programming with standard C++ (t.b.c.)
9:00-12:00 Lecture
13:00-16:00 Participants apply skills to their code

Tuesday, 16th of  January 2024 (participation optional; virtual only): Debugging on GPUs (Laura Morgenstern, Durham University) – 16:00-17:00

Thursday, 18th of  January 2024: GPU Programming with OpenMP (Michael Klemm, AMD)
9:00-12:00 Lecture
13:00-16:00 Participants apply skills to their code

Tuesday, 23rd of  January 2024 (participation optional; virtual only): Performance metrics (Laura Morgenstern, Durham University) – 16:00-17:00

Thursday, 25th of  January 2024: GPU Programming with SYCL (Stephen Blair-Chappell, Intel-certified oneAPI instructor and Sean Baccas, Durham University)
9:00-12:00 Lecture
13:00-16:00 Participants apply skills to their code

Thursday, 1st of  February 2024: Presentation of lessons learned (Participants)
9:00-12:00 t.b.c.


Participants should be in post as PDRA, PhD or RSE developing massively parallel data analysis and simulation codes. We expect each participant to bring their research code along to the workshops. These codes should be written in Fortran and/or C/C++ (or any other compiled language) and the participants should be familiar with the code base and the underlying language. In the ideal case, participants have completed our C/C++ introductory course.

We expect participants to join every session of the workshop series. In many cases, this will be challenging. Therefore, we want to encourage participants to form teams, i.e. please bring along friends and colleagues. Teams should work on one common code throughout the workshop series. Therefore, if some team members cannot join a particular session, we still have the “code participating” in all of them.

The course will be a tour de force through different GPUisation approaches. Participants who want to dive deeper into one particular GPU programming approach might be well-advised to sign up for a technology-/vendor-specific in-depth course. Debugging GPU codes will not be a major focus of this workshop series. Please see our dedicated correctness training for this. Profiling will be covered in one session. However, we plan to organise a dedicated performance analysis workshop series later in 2024.


Registration will close on 1 January 2024. You will receive a notification email after the registration deadline.

Please register here


Throughout the course, we will use nodes of our internal testbed at Durham. You are welcome to try things out on your own kit, but we will not be able to provide any support. Therefore, we strongly recommend each and every participant to sign up for the testbeds.

Material and confirmation

We will send out a welcome message closer to the workshop (after the registration has closed). Please note that we likely will not send out any messages prior to this. All lectures will be recorded and recordings plus material will be made publicly available through DiRAC.

Travel and accommodation

There is no financial or logistics support for accommodation and travel, but we can point to a few hotels nearby that guests of the department use frequently. Participants will need to make all booking themselves:

The University has their own Events team. They also provide B&B accommodation. However, as we approach the new term, it is not likely that they have “spare” rooms.

The University’s official Visit Us page provides some general guidance how to find us. The Department of Computer Science is on Mount Joy next to the Botanic Garden. Here are some further remarks how to get there:

  • If you are arriving at Newcastle International, take the tram (there’s only one) to Newastle Central (less than 40 minute) and then take a train to the South. Durham is 15 minutes away from Newcastle Central.
  • Alternatively, you can take a taxi from the airport (should be around 60 GBP for a drive of around 40 minutes in total). You can book a taxi directly within the airport at the counter next to the International Arrivals.
  • From Durham train station, it is a 30-40 minute walk, which is quite beautiful.
  • Taxis should be available from the station and should be around 10-15 GBP.
  • Right in front of the station, there’s a bus stop with two lines:
    • Bus 42 to Mount Oswald. It runs every 30 minutes. Get off at “South Road Colleges” and walk up the hill from there (5 minutes).
    • Bus 41 to University Science Park. Hop off at the final stop.

Information for participants

Coming after registration deadline.