Awkward Arrays 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.
Several 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 JIT-compilation, focusing on RDataFrame, cppyy, and Numba, particularly Numba on GPUs:
- Conversions of Awkward Arrays to and from RDataFrame (stable).
- Standalone cppyy (in development).
- Passing Awkward Arrays to and from Python functions compiled by Numba (stable).
- Passing Awkward Arrays to Python functions compiled for GPUs by Numba (in development).
- Header-only libraries for populating Awkward Arrays from C++ without
any Python dependencies (stable).
|Consider for long presentation||Yes|