Potential of the Julia programming language for high energy physics computing
arXiv:2306.03675 · doi:10.1007/s41781-023-00104-x
Abstract
Research in high energy physics (HEP) requires huge amounts of computing and storage, putting strong constraints on the code speed and resource usage. To meet these requirements, a compiled high-performance language is typically used; while for physicists, who focus on the application when developing the code, better research productivity pleads for a high-level programming language. A popular approach consists of combining Python, used for the high-level interface, and C++, used for the computing intensive part of the code. A more convenient and efficient approach would be to use a language that provides both high-level programming and high-performance. The Julia programming language, developed at MIT especially to allow the use of a single language in research activities, has followed this path. In this paper the applicability of using the Julia language for HEP research is explored, covering the different aspects that are important for HEP code development: runtime performance, handling of large projects, interface with legacy code, distributed computing, training, and ease of programming. The study shows that the HEP community would benefit from a large scale adoption of this programming language. The HEP-specific foundation libraries that would need to be consolidated are identified
arXiv comment32 pages, 5 figures, 4 tables
References in corpus (17)
- Array Programming with NumPy
- FastJet user manual
- Asymptotic formulae for likelihood-based tests of new physics
- Confidence Level Computation for Combining Searches with Small Statistics
- Dispelling the N^3 myth for the Kt jet-finder
- Combined results of searches for the standard model Higgs boson in pp collisions at sqrt(s) = 7 TeV
- ROOT - A C++ Framework for Petabyte Data Storage, Statistical Analysis and Visualization
- A standard format for Les Houches Event Files
- Robust Independent Validation of Experiment and Theory: Rivet version 3
- A Roadmap for HEP Software and Computing R&D for the 2020s
- OmniFold: A Method to Simultaneously Unfold All Observables
- TUnfold: an algorithm for correcting migration effects in high energy physics
- Challenges in Monte Carlo event generator software for High-Luminosity LHC
- Design and engineering of a simplified workflow execution for the MG5aMC event generator on GPUs and vector CPUs
- Evolution of the ROOT Tree I/O
- Performance of Julia for High Energy Physics Analyses
- zfit: scalable pythonic fitting