Skip to main content

Debugging, Testing and Correctness Workshop Series 2023

Debugging, Testing and Correctness Workshop Series 2023

Within modern, complex software landscapes, developers typically spend a significant proportion of their time on debugging. Studies estimate that more time is required to find bugs than to write actual code. Finding bugs and delivering correct(er) code becomes more difficult with modern HPC systems which offer unprecedented concurrency: The systems become heterogeneous, i.e. process code differently, bugs become non-deterministic, different programming models are used in combination, ….

Basic Information

Date: 23 November 2023 – 14 December 2023
Delivery: Hybrid. Participants can decide per session if they want to attend in-person.
Format: This workshop is for individuals and small groups of developers who want to acquire new skills. We expect each participant/group to bring along their own research code and to participate in all sessions.
Location: Various departments, Durham (due to term time, we have to run the workshop at different places on the science campus; please consult the individual days’ information below)

Course Content

  • 23 November 2023. From printf to a proper bug finding strategy – debugging and testing basics (Mladen Ivkovic, Durham) – Vis Lab MSC 1022 (Computer Science)
    • 9:00-10:00 Welcome notes & Participants introduce themselves and their codes
    • 10:00-12:00 Lecture/workshop with hands-on session
    • 13:00-14:00 Seminar by the SciComp group – externals invited
    • 14:00-16:00 Participants try out techniques with their own codes
  • 28 November 2023. Compiler-based feedback (Joachim Jenke, RWTH Aachen) – Pennington Room, Grey College
    • 9:00-12:00 Lecture/workshop with hands-on sessions
    • 13:00-15:00 Participants try out techniques with their own codes
  • 29 November 2023. Parallel program validation: MUST (Joachim Jenke, RWTH Aachen) – W010 (Geography)
    • 9:00-12:00 Lecture/workshop with hands-on sessions
    • 13:00-15:00 Participants try out techniques with their own codes
  • 5 December 2023. DDT: Scalable debugging – MPI, threading, CUDA, … (Rudy Shand, Linaro) – W414 (Geography)
    • 9:00-10:30 Lecture/workshop
    • 10:30-12:00 Hands-on session
    • 13:00-15:00 Participants try out DDT with their own codes
  • 14 December 2023. Continuous integration and systematic testing – gitlab runners and github actions (Sean Baccas, Durham) – Vis Lab MSC 1022 (Computer Science)
    • 9:00-11:00 Lecture/workshop
    • 11:00-12:00 Feedback session: participants reflect on lessons learned
    • 13:00-15:00 Participants set up CI pipeline themselves


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.


Registration will close on 17 November. You will receive a notification email after the registration deadline.

Registration is closed now.

Further to the registration for the workshop, we also ask participants to ensure that they have either a Hamilton 8 account (Durham members only) or a DINE account. We want to encourage everybody to register for DINE, as our tutorials will use this system, although Hamilton 8 provides most of the software stack, too. Please use the project code do009 for your DINE registrations. Participants who hold a Cosma account already should request the system to join do009.

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).
  • 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

  • We will use Slack for all conversations. Slack details have been shared with all registered participants.
  • For those joining us online, Zoom details have been shared.
  • Due to term time, the CIUK conference, and constraints on the lecturers’ side, we have a rather irregular schedule this time. Please consult the webpage for the course dates. For those attending in person: Please note that we use different rooms each day.
  • In each and every session, we will start at 9:00 to have a tool or methodology intro for around three hours. After that, participants are encouraged to try out the tools with their code.
  • Participants will have to bring their own codes to get most out of the afternoon session. In this context: This course is made for HPC developers, i.e. we will work with C/C++ and FORTRAN. Developers who only use Python are not a fit to this course. We will not cover Python.
  • Please sign up for our DINE testbed system (cmp webpage) prior to the course. All tools will be pre-installed and tested on this system. We will not be able to give support to people who bring along their own machines, i.e. you can try to run tools on your machines, but we will not be able to help you if this does not work. Use DINE.