Julia in HEP
Graeme Andrew Stewart, Alexander Moreno Briceño, Philippe Gras, Benedikt Hegner, Uwe Hernandez Acosta, Tamas Gal, Jerry Ling, Pere Mato, Mikhail Mikhasenko, Oliver Schulz, Sam Skipsey
TL;DR
This paper evaluates the adoption of the Julia programming language in high-energy physics (HEP) software, arguing that Julia can meet the field’s demand for performance and productivity. It surveys Julia's ecosystem, interoperability with key HEP tools (e.g., ROOT I/O via UnROOT.jl, Geant4.jl), GPU/HPC capabilities, and end-to-end workflows demonstrated in experiments like LEGEND. Key contributions include demonstrating pure-Julia data formats and analyses, efficient jet reconstruction, and modular interfaces for event generation and detector simulation, all while preserving performance on HPC architectures. The findings suggest that Julia’s combination of speed, flexibility, and broad scientific tooling makes it a compelling option for future HEP software and a practical path for gradual adoption across the community.
Abstract
Julia is a mature general-purpose programming language, with a large ecosystem of libraries and more than 12000 third-party packages, which specifically targets scientific computing. As a language, Julia is as dynamic, interactive, and accessible as Python with NumPy, but achieves run-time performance on par with C/C++. In this paper, we describe the state of adoption of Julia in HEP, where momentum has been gathering over a number of years. HEP-oriented Julia packages can already, via UnROOT.jl, read HEP's major file formats, including TTree and RNTuple. Interfaces to some of HEP's major software packages, such as through Geant4.jl, are available too. Jet reconstruction algorithms in Julia show excellent performance. A number of full HEP analyses have been performed in Julia. We show how, as the support for HEP has matured, developments have benefited from Julia's core design choices, which makes reuse from and integration with other packages easy. In particular, libraries developed outside HEP for plotting, statistics, fitting, and scientific machine learning are extremely useful. We believe that the powerful combination of flexibility and speed, the wide selection of scientific programming tools, and support for all modern programming paradigms and tools, make Julia the ideal choice for a future language in HEP.
