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
翻译:高能物理(HEP)研究需要大量的计算和存储资源,从而对代码速度和资源使用提出了严格限制。为了满足这些要求,通常使用编译型高性能语言;而对于专注于代码开发中应用的物理学家而言,更好的研究生产力则倾向于使用高级编程语言。一种常见的方法是将Python(用于高级接口)与C++(用于计算密集型代码部分)相结合。更便捷高效的途径是使用一种既能提供高级编程又能实现高性能的语言。由麻省理工学院(MIT)开发的Julia编程语言,特别旨在允许在研究活动中使用单一语言,正是沿此路径发展。本文探讨了将Julia语言用于HEP研究的可行性,涵盖了HEP代码开发中重要的多个方面:运行时性能、大型项目处理、遗留代码接口、分布式计算、培训及编程易用性。研究表明,HEP领域将从大规模采用该编程语言中受益,并确定了需要巩固的HEP专用基础库。