Engineering Papers⌕ Search

DOE OSTI · 2468774

Boosting RDataFrame performance with transparent bulk event processing

Abstract

RDataFrame is ROOT’s high-level interface for Python and C++ data analysis. Since it first became available, RDataFrame adoption has grown steadily and it is now poised to be a major component of analysis software pipelines for LHC Run 3 and beyond. Thanks to its design inspired by declarative programming principles, RDataFrame enables the development of highperformance, highly parallel analyses without requiring expert knowledge of multi-threading and I/O: user logic is expressed in terms of self-contained, small computation kernels tied together by a high-level API. This design completely decouples analysis logic from its actual execution, and opens several interesting avenues for workflow optimization. In particular, in this work we explore the benefits of moving internal data processing from an event-by-event to a bulkby-bulk loop. This refactoring dramatically reduces the framework’s runtime overheads; in collaboration with the I/O layer it improves data access patterns; it exposes information that optimizing compilers might use to auto-vectorize the invocation of user-defined computations; finally, while existing user-facing interfaces remain unaffected, it becomes possible to additionally offer interfaces that explicitly expose bulks of events, useful e.g. for the injection of GPU kernels into the analysis workflow. In order to inform similar future R&D, design challenges will be presented, as well as an investigation of the relevant timememory trade-off backed by novel performance benchmarks.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Guiraud, Enrico, Blomer, Jakob, Canal, Philippe, Naumann, Axel. 2024-01-01. Boosting RDataFrame performance with transparent bulk event processing. https://doi.org/10.1051/epjconf%2F202429506006

Cite the original work for its findings. Save a collection to share your selection of sources.