Parallel Processing Improvements in Julia Jet Reconstruction
Description
The Julia programming language offers a unique combination of speed, interoperability, ease of use, and flexibility, making it an attractive option for high-energy physics (HEP) research. Within the HSF context, the JuliaHEP initiative aims to develop a set of foundational packages in the Julia ecosystem that provide the essential functionality required by HEP researchers.
For a number of years now, there has been a package which performs serial jet reconstruction, an essential task in high-energy physics, natively in Julia. Performance for serial running is excellent, usually a little faster than the C++ standard package for this task, FastJet.
However, to date, there has been little investigation of how the Julia code performs multi-threaded. Some initial investigations indicate the scaling is less than optimal, but this has not been properly quantified.
Addressing this issue, and improving the code, is the aim of this GSoC project.
Task ideas
- Develop proper benchmarks for parallel running of JetReconstruction.jl
- Including suitable a suitable benchmark code with FastJet as a reference
- Analyse the performance of the code with these benchmarks
- Identify bottlenecks that are impacting performance
- Improve the code to better utilise multiple CPU code in parallel
Expected results and milestones
- A well honed set of benchmarks to measure the parallel performance of JetReconstruction.jl, and compare with C++
- An analysis of the performance, with an understanding of bottlenecks
- Code improvements that allow for greater performance (e.g., by reducing allocations)
- Advice for users on how to run efficiently in multi-threaded mode (e.g., garbage collector options)
Requirements
- Programming experience with C++ (advantageous, in order to be able to understand existing HEP codes)
- Prior experience in Julia (very advantageous)
- A background understanding of high-energy physics (advantageous)
How to apply
Once CERN/HSF is accepted as a GSoC org, please write an email with a short introduction to your interests and background to the mentors with the string “gsoc26” in the subject. There will be a small evaluation task that we will mail to you then.
AI usage policy
AI assistance is allowed for this contribution. The applicant takes full responsibility for all code and results, disclosing AI use for non-routine tasks (algorithm design, architecture, complex problem-solving). Routine tasks (grammar, formatting, style) do not require disclosure.
Links
Mentors
- Graeme Stewart - DESY
- Mateusz Fila - CERN
Additional Information
- Difficulty level (low / medium / high): medium
- Duration: 350 hours
- Mentor availability: June-July, September-October