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
翻译:高能物理研究需要大量的计算和存储资源,对代码运行速度和资源使用有严格限制。为满足这些要求,通常使用编译型高性能语言;而对于注重代码开发中应用层面的物理学家而言,更好的研究效率需要高级编程语言的支持。一种常见的方法是结合Python(用于高级接口)和C++(用于计算密集型代码部分)。更便捷高效的方法则是使用既能提供高级编程能力又能保证高性能的语言。由麻省理工学院专门为研究活动中单一语言使用而开发的Julia编程语言正遵循这一路径。本文探讨了在HEP研究中应用Julia语言的可行性,涵盖了对HEP代码开发至关重要的不同方面:运行时性能、大型项目处理、与遗留代码的接口、分布式计算、培训及编程简便性。研究表明,HEP社区将受益于该编程语言的大规模采用,并明确了需要整合的HEP专用基础库。