Skip to main content

Performance Analysis Workshop Series 2024

Performance Analysis Workshop Series 2024

With every new generation of computers, we see the gap between the theoretical performance of a machine and the performance that is actually delivered by applications widen. Codes struggle to exploit the hardware. It has therefore become critical that researchers and research software engineers in HPC to understand how well and why codes use the machinery as they do. Insight into performance behaviour can drive the code evolution and ultimately become the means through which future advancement through computing are facilitated.

This workshop series offers a comprehensive introduction to a selection of open source tools that enable researchers to assess the performance behaviour of their code. The workshops will be augmented by revision sessions of some of the core HPC know-how. We encourage participants to bring along their own codes so they can continually assess and improve them throughout the series.

Basic Information

Date: 4 April 2024 – 9 May 2024
Delivery: Hybrid. Participants can decide per session if they want to attend in-person.
Format: Tuesday sessions will be delivered as 1-hour lectures, while Thursday sessions will be full-day workshops with the opportunity to apply the acquired skills to your own research code.
Requirements and prerequisites: This workshop is for small groups of developers who want to gather insight into their code base’s behaviour. Individuals without a particular code to study can participate but are encouraged to form teams. Knowledge about the code of interest, C/C++ or Fortran, MPI and further parallelisation/optimisation techniques is mandatory. See detailed requirements below. We expect each participant/group to bring along their own research code and to participate in all full-day workshops.
Location: Vis Lab, MCS 1022, Department of Computer Science at Durham University and zoom

Course Content

The workshop consists of a series of sessions. We encourage participants to attend in person where possible, and we require at least one member per team to participate in the final wrap-up event.

Thursday, 4 April 2024: Kick-off (Marta Garcia, Brian Wylie, Markus Geimer)
9:00-9:20 Welcome notes (Chris Marcotte)
9:20-10:00 Introduction to performance analysis (Markus Geimer)
10:15-11:30 POP metrics (Marta Garcia)
11:30-12:00 Participants introduce their codes
13:00-13:30 Pitch by Linaro (Rudy Shand)
13:30-14:00 Pitch by Intel (Heinrich Bockhorst)
14:00-14:30 Participants introduce their code
14:30-16:00 Participants work on their code

Tuesday, 9 April 2024: Revision: Compiler feedback and optimisation (Pawel Radtke; optional) – 16:00-17:00 virtual only

Thursday, 11 April 2024: Intel VTuneTM Profiler (Heinrich Bockhorst)
9:00-9:30 Teams present some lessons learned from last session
9:30-12:00 Workshop
13:00-16:00 Participants apply tool to their code

Tuesday, 16 April 2024: Revision: Machine architecture (Tobias Weinzierl; optional) – 16:00-17:00 virtual only

Thursday, 18 April 2024: MAQAO (Cedric Valensi, Emmanuel Oseret and Jäsper Ibnamar)
9:00-12:00 Workshop
13:00-16:00 Participants apply tool to their code

Tuesday, 23 April 2024: Revision: MPI refresher (Tobias Weinzierl; optional) – 16:00-17:00 virtual only

Thursday, 25 April 2024: Scalasca (Brian Wylie, Markus Geimer)
9:00-12:00 Workshop
13:00-16:00 Participants apply tool to their code

Tuesday, 30 April 2024: Revision: Performance models – roofline plots, strong and week scaling (Tobias Weinzierl; optional) – 16:00-17:00 virtual only

Thursday, 2 May 2024: Performance regression testing with reframe (Tuomas Koskela and Ilektra Christidi)
9:00-12:00: Tools and workflows to systematically embed performance analysis and regression testing into git-based development workflows
13:00-16:00: Participants can try out to set up workflows for their codes; colleagues will be present to wrap-up and help-out with follow-up questions on Scalasca or other tools.

Thursday, 9 May 2024: Presentation of lessons learned (participants)
This session will be part of the Durham HPC Days 2024. Participants present their codes and lessons learned.


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 will not cover GPUs, as GPUs are covered by a different event series.

We expect participants to join every session of the workshop series. In many cases, this will be challenging. Also, we want participants to learn new facts about the behaviour of their own codes. This is often tricky as a sole individual – too many aspects of a code interfere with each other. 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, and the teams can “team up” throughout the afternoon sessions and join forces.


Registration is closed now.


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.