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 条
  • [1] JIT Leaks: Inducing Timing Side Channels through Just-In-Time Compilation
    Brennan, Tegan
    Rosner, Nicolas
    Bultan, Tevfik
    2020 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2020), 2020, : 1207 - 1222
  • [2] JUST-IN-TIME (JIT) METHODOLOGY.
    Walter, Gerry
    The Journal of information and image management, 1986, 19 (07): : 26 - 29
  • [3] A just-in-time (JIT) simulation exercise
    Ramsing, KD
    Bergquist, TM
    DECISION SCIENCES INSTITUTE 1998 PROCEEDINGS, VOLS 1-3, 1998, : 303 - 305
  • [4] Quantum simulation with just-in-time compilation
    Efthymiou, Stavros
    Lazzarin, Marco
    Pasquale, Andrea
    Carrazza, Stefano
    QUANTUM, 2022, 6
  • [5] Efficient Java']JavaVM just-in-time compilation
    Krall, A
    1998 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS, 1998, : 205 - 212
  • [6] Just-in-time compilation for SQL query processing
    Viglas, Stratis D.
    PROCEEDINGS OF THE VLDB ENDOWMENT, 2013, 6 (11): : 1190 - 1191
  • [7] Just-in-time compilation for SQL query processing
    Viglas, Stratis D.
    2014 IEEE 30TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE), 2014, : 1298 - 1301
  • [8] Just-in-Time Compilation for Verilog A New Technique for Improving the FPGA Programming Experience
    Schkufza, Eric
    Wei, Michael
    Rossbach, Christopher J.
    TWENTY-FOURTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS (ASPLOS XXIV), 2019, : 271 - 286
  • [9] Remote Just-in-Time Compilation for Dynamic Languages
    Pecimuth, Andrej
    COMPANION PROCEEDINGS OF THE 2023 ACM SIGPLAN INTERNATIONAL CONFERENCE ON SYSTEMS, PROGRAMMING, LANGUAGES, AND APPLICATIONS: SOFTWARE FOR HUMANITY, SPLASH COMPANION 2023, 2023, : 1 - 3
  • [10] On Supporting Efficient Partial Reconfiguration with Just-In-Time Compilation
    Sidiropoulos, Harry
    Siozios, Kostas
    Figuli, Peter
    Soudris, Dimitrios
    Hubner, Michael
    2012 IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS & PHD FORUM (IPDPSW), 2012, : 328 - 335