TY - JOUR
T1 - Optimizing ROOT IO for Analysis
AU - Bockelman, B.
AU - Zhang, Z.
AU - Pivarski, J.
N1 - Funding Information:
This work was supported by the National Science Foundation under Grants ACI-1450323, ACI-1450377 and PHY-1624356. This research was done using resources provided by the Holland Computing Center of the University of Nebraska.
Publisher Copyright:
© 2018 Institute of Physics Publishing. All rights reserved.
PY - 2018/10/18
Y1 - 2018/10/18
N2 - The ROOT I/O (RIO) subsystem is foundational to most HEP experiments - it provides a file format, a set of APIs/semantics, and a reference implementation in C++. It is often found at the base of an experiment's framework and is used to serialize the experiment's data; in the case of an LHC experiment, this may be hundreds of petabytes of files! Individual physicists will further use RIO to perform their end-stage analysis, reading from intermediate files they generate from experiment data. RIO is thus incredibly flexible: it must serve as a file format for archival (optimized for space) and for working data (optimized for read speed). To date, most of the technical work has focused on improving the former use case. We present work designed to help improve RIO for analysis. We analyze the real-world impact of a compression algorithm LZ4 to decrease decompression times (and the corresponding cost in disk space). We introduce new APIs that read RIO data in bulk, removing the per-event overhead of a C++ function call. We compare the performance with the existing RIO APIs for simple structure data and show how this can be complimentary with efforts to improve the parallelism of the RIO stack.
AB - The ROOT I/O (RIO) subsystem is foundational to most HEP experiments - it provides a file format, a set of APIs/semantics, and a reference implementation in C++. It is often found at the base of an experiment's framework and is used to serialize the experiment's data; in the case of an LHC experiment, this may be hundreds of petabytes of files! Individual physicists will further use RIO to perform their end-stage analysis, reading from intermediate files they generate from experiment data. RIO is thus incredibly flexible: it must serve as a file format for archival (optimized for space) and for working data (optimized for read speed). To date, most of the technical work has focused on improving the former use case. We present work designed to help improve RIO for analysis. We analyze the real-world impact of a compression algorithm LZ4 to decrease decompression times (and the corresponding cost in disk space). We introduce new APIs that read RIO data in bulk, removing the per-event overhead of a C++ function call. We compare the performance with the existing RIO APIs for simple structure data and show how this can be complimentary with efforts to improve the parallelism of the RIO stack.
UR - http://www.scopus.com/inward/record.url?scp=85055646077&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85055646077&partnerID=8YFLogxK
U2 - 10.1088/1742-6596/1085/3/032012
DO - 10.1088/1742-6596/1085/3/032012
M3 - Conference article
AN - SCOPUS:85055646077
SN - 1742-6588
VL - 1085
JO - Journal of Physics: Conference Series
JF - Journal of Physics: Conference Series
IS - 3
M1 - 032012
T2 - 18th International Workshop on Advanced Computing and Analysis Techniques in Physics Research, ACAT 2017
Y2 - 21 August 2017 through 25 August 2017
ER -