|
| 1 | +--- |
| 2 | +title: Parallel Processing Improvements in Julia Jet Reconstruction |
| 3 | +layout: gsoc_proposal |
| 4 | +project: JuliaHEP |
| 5 | +year: 2026 |
| 6 | +organization: |
| 7 | + - DESY |
| 8 | +difficulty: medium |
| 9 | +duration: 350 |
| 10 | +mentor_avail: June-July, September-October |
| 11 | +project_mentors: |
| 12 | + - email: graeme.andrew.stewart@desy.de |
| 13 | + organization: DESY |
| 14 | + first_name: Graeme |
| 15 | + last_name: Stewart |
| 16 | + - email: mateusz.jakub.fila@cern.ch |
| 17 | + organization: CERN |
| 18 | + first_name: Mateusz |
| 19 | + last_name: Fila |
| 20 | +--- |
| 21 | + |
| 22 | +## Description |
| 23 | + |
| 24 | +The Julia programming language offers a unique combination of speed, |
| 25 | +interoperability, ease of use, and flexibility, making it an attractive option |
| 26 | +for high-energy physics (HEP) research. Within the HSF context, the |
| 27 | +[JuliaHEP](https://github.com/JuliaHEP) initiative aims to develop a set of |
| 28 | +foundational packages in the Julia ecosystem that provide the essential |
| 29 | +functionality required by HEP researchers. |
| 30 | + |
| 31 | +For a number of years now, there has been a package which performs [serial jet |
| 32 | +reconstruction](https://github.com/JuliaHEP/JetReconstruction.jl), an essential |
| 33 | +task in high-energy physics, natively in Julia. Performance for serial running |
| 34 | +is [excellent](https://doi.org/10.1051/epjconf/202533701067), usually a |
| 35 | +little faster than the C++ standard package for this task, |
| 36 | +[FastJet](https://fastjet.fr). |
| 37 | + |
| 38 | +However, to date, there has been little investigation of how the Julia code |
| 39 | +performs multi-threaded. Some initial investigations indicate the scaling is |
| 40 | +less than optimal, but this has not been properly quantified. |
| 41 | + |
| 42 | +Addressing this issue, and improving the code, is the aim of this GSoC project. |
| 43 | + |
| 44 | +## Task ideas |
| 45 | + |
| 46 | +- Develop proper benchmarks for parallel running of JetReconstruction.jl |
| 47 | + - Including suitable a suitable benchmark code with FastJet as a reference |
| 48 | +- Analyse the performance of the code with these benchmarks |
| 49 | +- Identify bottlenecks that are impacting performance |
| 50 | +- Improve the code to better utilise multiple CPU code in parallel |
| 51 | + |
| 52 | +## Expected results and milestones |
| 53 | + |
| 54 | +- A well honed set of benchmarks to measure the parallel performance of JetReconstruction.jl, and compare with C++ |
| 55 | +- An analysis of the performance, with an understanding of bottlenecks |
| 56 | +- Code improvements that allow for greater performance (e.g., by reducing allocations) |
| 57 | +- Advice for users on how to run efficiently in multi-threaded mode (e.g., garbage collector options) |
| 58 | + |
| 59 | +## Requirements |
| 60 | + |
| 61 | +- Programming experience with C++ (advantageous, in order to be able to understand existing HEP codes) |
| 62 | +- Prior experience in Julia (very advantageous) |
| 63 | +- A background understanding of high-energy physics (advantageous) |
| 64 | + |
| 65 | +## How to apply |
| 66 | + |
| 67 | +Once CERN/HSF is accepted as a GSoC org, please write an email with a short |
| 68 | +introduction to your interests and background to the mentors with the string |
| 69 | +"gsoc26" in the subject. There will be a small evaluation task that we will |
| 70 | +mail to you then. |
| 71 | + |
| 72 | +## AI usage policy |
| 73 | + |
| 74 | +AI assistance is allowed for this contribution. The applicant takes full |
| 75 | +responsibility for all code and results, disclosing AI use for non-routine |
| 76 | +tasks (algorithm design, architecture, complex problem-solving). Routine tasks |
| 77 | +(grammar, formatting, style) do not require disclosure. |
| 78 | + |
| 79 | +## Links |
| 80 | + |
| 81 | +- [Julia Programming Language](https://julialang.org/) |
| 82 | +- [JuliaHEP HSF Group](https://hepsoftwarefoundation.org/workinggroups/juliahep.html) |
| 83 | +- [JetReconstruction.jl](https://github.com/JuliaHEP/JetReconstruction.jl) |
| 84 | +- [Fast Jet Finding in Julia](https://doi.org/10.1051/epjconf/202533701067) |
0 commit comments