Awkward Just-In-Time (JIT) Compilation: A Developer's Experience

被引:0
|
作者
Osborne, Ianna [1 ]
Pivarski, Jim [1 ]
Ifrim, Ioana [1 ]
Hollands, Angus [1 ]
Schreiner, Henry [1 ]
机构
[1] Princeton Univ, Princeton, NJ 08544 USA
关键词
D O I
10.1051/epjconf/202429506003
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
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 JIT-compilation, 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
引用
收藏
页数:7
相关论文
共 50 条
  • [21] Hybrid Execution: Combining Ahead-of-Time and Just-in-Time Compilation
    Pichler, Christoph
    Li, Paley
    Schatz, Roland
    Mössenböck, Hanspeter
    VMIL 2023 - Proceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages, Co-located with: SPLASH 2023, 2023, : 39 - 49
  • [22] Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation
    Fumero, Juan
    Steuwer, Michel
    Stadler, Lukas
    Dubach, Christophe
    ACM SIGPLAN NOTICES, 2017, 52 (07) : 60 - 73
  • [23] Programming GPUs with C++14 and Just-In-Time Compilation
    Haidl, Michael
    Hagedorn, Bastian
    Gorlatch, Sergei
    PARALLEL COMPUTING: ON THE ROAD TO EXASCALE, 2016, 27 : 247 - 256
  • [24] Generation of Efficient Obfuscated Code through Just-in-Time Compilation
    Hataba, Muhammad
    El-Mahdy, Ahmed
    Ueda, Kazunori
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2019, E102D (03) : 645 - 649
  • [25] Efficient Java']Java exception handling in just-in-time compilation
    Lee, SI
    Yang, BS
    Moon, SM
    SOFTWARE-PRACTICE & EXPERIENCE, 2004, 34 (15): : 1463 - 1480
  • [26] ClangJIT: Enhancing C plus plus with Just-in-Time Compilation
    Finkel, Hal
    Poliakoff, David
    Camier, Jean-Sylvain
    Richards, David F.
    PROCEEDINGS OF P3HPC 2019: 2019 IEEE/ACM INTERNATIONAL WORKSHOP ON PERFORMANCE, PORTABILITY AND PRODUCTIVITY IN HPC (P3HPC), 2019, : 82 - 95
  • [27] An object-oriented processor with Just-In-Time compilation support
    City University of Hong Kong, Hong Kong, Hong Kong
    3CA - Int. Symp. Comput., Commun., Control Autom., (299-302):
  • [28] Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems
    Carbon, Alexandre
    Lhuillier, Yves
    Charles, Henri-Pierre
    PROCEEDINGS OF THE 2013 IEEE 24TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS (ASAP 13), 2013, : 203 - 210
  • [29] Adaptability of just-in-time (JIT) philosophy to service systems:: A case study
    Balci, Deniz
    Kesen, Saadettin Erhan
    Baykoc, Oemer Faruk
    SIMULATION-TRANSACTIONS OF THE SOCIETY FOR MODELING AND SIMULATION INTERNATIONAL, 2007, 83 (09): : 631 - 642
  • [30] Just-in-Time Compilation and Link-Time Optimization for OpenMP Target Offloading
    Tian, Shilei
    Huber, Joseph
    Tramm, John
    Chapman, Barbara
    Doerfert, Johannes
    OPENMP IN A MODERN WORLD: FROM MULTI-DEVICE SUPPORT TO META PROGRAMMING, 2022, 13527 : 145 - 158