
We are very excited to announce a workshop on Profiling in Python organised through the HEP Software Foundation and IRIS-HEP
The times for the workshop are in US Eastern time zone.
What exactly will I learn?
Physicists often ask "Why is my HEP analysis code slow?" or "Why is my code using too much memory?" or "Why are my workers crashing?".
To answer those questions, one needs to profile their code and this is exactly what this training is about.
This hands-on training covers the two pillars of Python performance work: memory profiling and time/CPU profiling. In the first block we'll use memray to find memory leaks, bloat, and allocation hotspots in real code. In the second block we'll cover time profiling using Python 3.15's new built-in sampling profiler Tachyon (`profiling.sampling`), alongside complementary tools like py-spy and samply, to locate CPU bottlenecks without heavy instrumentation overhead.
Each block opens with a short (~30 min) conceptual lecture on how the profilers actually work (sampling vs. tracing, allocation tracking, flame graphs), followed by extensive live, hands-on profiling exercises on real example code. We'll set up the entire environment live with `uv`, so there is nothing to install in advance.
Given the limited number of participants, all participants are expected to attend the whole workshop.
This is a virtual event and no payment or travel is required for attending. Participants are required to have their own laptop for the workshop.
Please contact the organizers (email us) in case of any questions.
Notes for Participants
Please log in to indico to see all links in the menu bar on the left.
To participate in discussions for the workshop we use a slack channel. You should receive a slack invite via email before the workshop. Make sure to join. All software training related communication should be made via slack.
Make sure you complete the setup instruction below BEFORE the event. Should there be any questions, please ask in the Slack channel.
To participate in the workshop, you will need access to the software described below "prerequisites". In addition, you will need an up-to-date web browser.
Please note that the workshop will be recorded and that the videos will be publicly available.
Prerequisites
- No advance setup required. We'll install everything live with `uv` at the start of the session.
- Bring a laptop running Linux or macOS. `memray` does not support Windows. If you only have a Windows machine, please set up **WSL2** beforehand or get access to any Linux or macOS machine or VM.
- Basic familiarity with Python and the command line is assumed; no prior profiling experience needed.
Instructors
- Iason Krommydas (Rice University)
Mentors
Local organising committee
- Richa Sharma (University of Puerto Rico Mayaguez)
- Alexander Moreno (Universidad Antonio Nariño)
- Andres Rios-Tascon (Princeton University)