EPJ Web of Conferences (Jan 2019)
Parallel Event Selection on HPC Systems
Abstract
In their recent measurement of the neutrino oscillation parameters, NOvA uses a sample of approximately 25 million reconstructed spills to search for electron-neutrino appearance events. These events are stored in an n-tuple format, in 250 thousand ROOT files. File sizes range from a few hundred KiB to a few MiB; the full dataset is approximately 1.4 TiB. These millions of events are reduced to a few tens of events by the application of strict event selection criteria, and then summarized by a handful of numbers each, which are used in the extraction of the neutrino oscillation parameters. The NOvA event selection code is currently a serial C++ program that reads these n-tuples. The current table data format and organization and the selection/ reduction processing involved provides us with an opportunity to explore alternate approaches to represent the data and implement the processing. We represent our n-tuple data in HDF5 format that is optimized for the HPC environment and which allows us to use the machine’s high-performance parallel I/O capabilities. We use MPI, numpy and h5py to implement our approach and compare the performance with the existing approach. We study the performance implications of using thousands of small files of different sizes as compared with one large file using HPC resources. This work has been done as part of the SciDAC project, “HEP analytics on HPC” in collaboration with the ASCR teams at ANL and LBNL.