Profiling and Debugging Tools for C and C++: Valgrind and gprof
Description
This workshop uses Gadi via command line.
Are you spending more time waiting for your simulations to run than analysing your results? Whether you are a biologist running genomic pipelines, a physicist simulating complex systems, or a social scientist processing large-scale survey data, computational efficiency is the backbone of modern research.
This course introduces the essential tools for Profiling. You will learn to use scientific tools to pinpoint exactly where your code is slowing down—identifying "bottlenecks"—and how to strategically optimise them. This course bridges the gap between writing code that works and writing code that scales, empowering researchers from all disciplines to maximise their computational resources and accelerate their time-to-discovery.
Prerequisites
Experience with C or C++ programming. (C Programming for Python Users)
Experience with bash or similar Unix shells. (Software Carpentry - The Unix Shell)
User experience on Gadi using command lines. (Seminar on Getting Started with Gadi)
Learning Outcomes
By the end of this course, participants will be able to:
Identify performance bottlenecks in scripts using professional profiling tools.
Interpret profiling outputs, including call graphs, flame graphs, and deterministic vs. statistical data.
Distinguish between CPU-bound, memory-bound, and I/O-bound performance issues.
Implement high-impact optimisations to reduce execution time and resource consumption.
Establish a reproducible benchmarking workflow for future research projects.
FAQs
- Will this event be recorded?
No
Tickets for good, not greed Humanitix dedicates 100% of profits from booking fees to charity






