Content area

Abstract

Awkward Array is a library for performing NumPy-like computations on nested, variable-sized data, enabling array-oriented programming on arbitrary data structures in Python. However, imperative (procedural) solutions can sometimes be easier to write or faster to run. Performant imperative programming requires compilation; JIT-compilation makes it convenient to compile in an interactive Python environment. Various functions in Awkward Arrays JIT-compile a user’s code into executable machine code. They use several different techniques, but reuse parts of each others’ implementations. We discuss the techniques used to achieve the Awkward Arrays acceleration with JITcompilation, focusing on RDataFrame, cppyy, and Numba, particularly Numba on GPUs: conversions of Awkward Arrays to and from RDataFrame; standalone cppyy; passing Awkward Arrays to and from Python functions compiled by Numba; passing Awkward Arrays to Python functions compiled for GPUs by Numba; and header-only libraries for populating Awkward Arrays from C++ without any Python dependencies

Details

1009240
Title
Awkward Just-In-Time (JIT) Compilation: A Developer’s Experience
Publication title
Volume
295
Source details
26th International Conference on Computing in High Energy and Nuclear Physics (CHEP 2023)
Publication year
2024
Publication date
2024
Section
Physics Analysis Tools
Publisher
EDP Sciences
Place of publication
Les Ulis
Country of publication
France
Publication subject
ISSN
21016275
e-ISSN
2100014X
Source type
Conference Paper
Language of publication
English
Document type
Conference Proceedings
Publication history
 
 
Online publication date
2024-05-06
Publication history
 
 
   First posting date
06 May 2024
ProQuest document ID
3057079467
Document URL
https://www.proquest.com/conference-papers-proceedings/awkward-just-time-jit-compilation-developer-s/docview/3057079467/se-2?accountid=208611
Copyright
© 2024. This work is licensed under https://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and conditions, you may use this content in accordance with the terms of the License.
Last updated
2024-05-21
Database
ProQuest One Academic