TY - JOUR
T1 - Potential of the Julia Programming Language for High Energy Physics Computing
AU - Eschle, Jonas
AU - Gál, Tamás
AU - Giordano, Mosè
AU - Gras, Philippe
AU - Hegner, Benedikt
AU - Heinrich, Lukas
AU - Hernandez Acosta, Uwe
AU - Kluth, Stefan
AU - Ling, Jerry
AU - Mato, Pere
AU - Mikhasenko, Mikhail
AU - Moreno Briceño, Alexander
AU - Pivarski, Jim
AU - Samaras-Tsakiris, Konstantinos
AU - Schulz, Oliver
AU - Stewart, Graeme Andrew
AU - Strube, Jan
AU - Vassilev, Vassil
N1 - Publisher Copyright:
© 2023, The Author(s).
PY - 2023/12
Y1 - 2023/12
N2 - 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.
AB - 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.
KW - HEP
KW - HPC
KW - High energy and nuclear physics
KW - Julia
KW - Programming language
KW - Python
UR - http://www.scopus.com/inward/record.url?scp=85173742095&partnerID=8YFLogxK
U2 - 10.1007/s41781-023-00104-x
DO - 10.1007/s41781-023-00104-x
M3 - Article
AN - SCOPUS:85173742095
SN - 2510-2044
VL - 7
JO - Computing and Software for Big Science
JF - Computing and Software for Big Science
IS - 1
M1 - 10
ER -