DOE PAGES title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Potential of the Julia Programming Language for High Energy Physics Computing

Journal Article · · Computing and Software for Big Science
ORCiD logo [1]; ORCiD logo [2]; ORCiD logo [3]; ORCiD logo [4];  [5]; ORCiD logo [6]; ORCiD logo [7]; ORCiD logo [6]; ORCiD logo [8]; ORCiD logo [5]; ORCiD logo [9]; ORCiD logo [10]; ORCiD logo [11]; ORCiD logo [5]; ORCiD logo [6]; ORCiD logo [5]; ORCiD logo [12];  [11]
  1. University of Zurich (Switzerland)
  2. Friedrich-Alexander University Erlangen-Nuremberg, Bamberg (Germany)
  3. University College London (United Kingdom)
  4. University Paris-Saclay, Gif-sur-Yvette (France)
  5. European Organization for Nuclear Research (CERN), Geneva (Switzerland)
  6. Max-Planck-Institut für Physik, Munich (Germany)
  7. Center for Advanced Systems Understanding, Görlitz (Germany); Helmholtz-Zentrum Dresden-Rossendorf, Dresden (Germany)
  8. Harvard University, Cambridge, MA (United States)
  9. ORIGINS Excellence Cluster, Garching (Germany); Ludwig Maximilian University of Munich, Munich (Germany)
  10. Universidad Antonio Nariño, Ibagué (Colombia)
  11. Princeton University, NJ (United States)
  12. Pacific Northwest National Laboratory (PNNL), Richland, WA (United States); University of Oregon, Eugene, OR (United States)

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.

Research Organization:
Pacific Northwest National Laboratory (PNNL), Richland, WA (United States)
Sponsoring Organization:
USDOE Office of Science (SC)
Grant/Contract Number:
AC05-76RL01830
OSTI ID:
2300538
Report Number(s):
PNNL-SA-185647
Journal Information:
Computing and Software for Big Science, Vol. 7, Issue 1; ISSN 2510-2036
Publisher:
SpringerCopyright Statement
Country of Publication:
United States
Language:
English

References (50)

The Roofit Toolkit for data Modeling conference January 2012
HEP Software Development in the Next Decade; the Views of the HSF Community journal September 2018
A Roadmap for HEP Software and Computing R&D for the 2020s journal March 2019
ROOT — A C++ framework for petabyte data storage, statistical analysis and visualization journal December 2009
ROOT — An object oriented data analysis framework journal April 1997
OmniFold: A Method to Simultaneously Unfold All Observables journal May 2020
FastJet user manual: (for version 3.0.2) journal March 2012
A standard format for Les Houches Event Files journal February 2007
MPI.jl: Julia bindings for the Message Passing Interface journal July 2021
Evolution of the ROOT Tree I/O journal January 2020
Comparison of unfolding methods using RooFitUnfold journal August 2020
Minuit - a system for function minimization and analysis of the parameter errors and correlations journal December 1975
High-Luminosity Large Hadron Collider (HL-LHC) report January 2017
LHC Machine journal August 2008
Julia: A Fresh Approach to Numerical Computing journal January 2017
Dispelling the N3 myth for the kt jet-finder journal September 2006
Encapsulation and inheritance in object-oriented programming languages journal June 1986
A new approach to variable metric algorithms journal March 1970
zfit: Scalable pythonic fitting journal January 2020
Conditioning of Quasi-Newton Methods for Function Minimization journal July 1970
zfit: scalable pythonic fitting journal January 2020
Makie.jl: Flexible high-performance data visualization for Julia journal September 2021
Unfolding algorithms and tests using RooUnfold null January 2011
Julia subtyping: a rational reconstruction
  • Zappa Nardelli, Francesco; Belyakova, Julia; Pelenitsyn, Artem
  • Proceedings of the ACM on Programming Languages, Vol. 2, Issue OOPSLA https://doi.org/10.1145/3276483
journal October 2018
User-Defined Types and Procedural Data Structures as Complementary Approaches to Data Abstraction book January 1978
Cling – The New Interactive Interpreter for ROOT 6 journal December 2012
Confidence level computation for combining searches with small statistics journal September 1999
BAT.jl: A Julia-Based Tool for Bayesian Inference journal April 2021
A Family of Variable-Metric Methods Derived by Variational Means journal January 1970
DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia journal May 2017
Julia: dynamism and performance reconciled by design journal October 2018
Array programming with NumPy journal September 2020
Cataloging the visible universe through Bayesian inference in Julia at petascale journal May 2019
On understanding types, data abstraction, and polymorphism journal December 1985
The impact of meta-tracing on VM design and implementation journal February 2015
Performance of Julia for High Energy Physics Analyses journal April 2021
Challenges in Monte Carlo Event Generator Software for High-Luminosity LHC journal May 2021
pyhf: pure-Python implementation of HistFactory statistical models journal February 2021
Robust Independent Validation of Experiment and Theory: Rivet version 3 journal January 2020
Condor-a hunter of idle workstations conference January 1988
Geant4—a simulation toolkit
  • Agostinelli, S.; Allison, J.; Amako, K.
  • Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment, Vol. 506, Issue 3 https://doi.org/10.1016/S0168-9002(03)01368-8
journal July 2003
Presentation of search results: the CL s technique journal September 2002
Systematics and limit calculations report December 2006
Design and engineering of a simplified workflow execution for the MG5aMC event generator on GPUs and vector CPUs journal January 2021
Asymptotic formulae for likelihood-based tests of new physics journal February 2011
Combined results of searches for the standard model Higgs boson in pp collisions at s=7 TeV journal March 2012
TUnfold, an algorithm for correcting migration effects in high energy physics journal October 2012
High-performance symbolic-numerics via multiple dispatch journal September 2021
UnROOT: an I/O library for the CERN ROOT file format written in Julia journal August 2022
The Convergence of a Class of Double-rank Minimization Algorithms 1. General Considerations journal January 1970