AwkwardForth: accelerating Uproot with an internal DSL

02/24/2021
by   Jim Pivarski, et al.
0

File formats for generic data structures, such as ROOT, Avro, and Parquet, pose a problem for deserialization: it must be fast, but its code depends on the type of the data structure, not known at compile-time. Just-in-time compilation can satisfy both constraints, but we propose a more portable solution: specialized virtual machines. AwkwardForth is a Forth-driven virtual machine for deserializing data into Awkward Arrays. As a language, it is not intended for humans to write, but it loosens the coupling between Uproot and Awkward Array. AwkwardForth programs for deserializing record-oriented formats (ROOT and Avro) are about as fast as C++ ROOT and 10-80× faster than fastavro. Columnar formats (simple TTrees, RNTuple, and Parquet) only require specialization to interpret metadata and are therefore faster with precompiled code.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/03/2023

Using a DSL to read ROOT TTrees faster in Uproot

Uproot reads ROOT TTrees using pure Python. For numerical and (singly) j...
research
03/26/2018

Extra Space during Initialization of Succinct Data Structures and of Dynamical Initializable Arrays

Many succinct data structures on a word RAM require precomputed tables t...
research
03/26/2018

Extra Space during Initialization of Succinct Data Structures and Dynamical Initializable Arrays

Many succinct data structures on the word RAM require precomputed tables...
research
03/28/2020

A Faster, More Intuitive RooFit

RooFit and RooStats, the toolkits for statistical modelling in ROOT, are...
research
12/08/2012

A Generic Checkpoint-Restart Mechanism for Virtual Machines

It is common today to deploy complex software inside a virtual machine (...
research
02/19/2021

Overcoming Restraint: Modular Refinement using Cogent's Principled Foreign Function Interface

Cogent is a restricted functional language designed to reduce the cost o...

Please sign up or login with your details

Forgot password? Click here to reset