Polyglot Jet Finding
Graeme Andrew Stewart, Philippe Gras, Benedikt Hegner, Atell, Krasnopolski

TL;DR
This paper compares the performance and usability of Python, Julia, and C++ implementations of a high-energy physics jet-finding algorithm, highlighting differences in speed, coding ergonomics, and development effort.
Contribution
It provides a comparative analysis of multiple programming languages for a complex HEP algorithm, emphasizing performance, coding ergonomics, and development effort.
Findings
Julia and Python implementations are competitive with C++ in speed.
Python with numpy and numba offers a balance of performance and ease of coding.
Language choice impacts code readability and sustainability.
Abstract
The evaluation of new computing languages for a large community, like HEP, involves comparison of many aspects of the languages' behaviour, ecosystem and interactions with other languages. In this paper we compare a number of languages using a common, yet non-trivial, HEP algorithm: the \akt\ clustering algorithm used for jet finding. We compare specifically the algorithm implemented in Python (pure Python and accelerated with numpy and numba), and Julia, with respect to the reference implementation in C++, from Fastjet. As well as the speed of the implementation we describe the ergonomics of the language for the coder, as well as the efforts required to achieve the best performance, which can directly impact on code readability and sustainability.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputational Physics and Python Applications · Parallel Computing and Optimization Techniques · Scientific Computing and Data Management
