143 research outputs found
Continuous Performance Benchmarking Framework for ROOT
Foundational software libraries such as ROOT are under intense pressure to
avoid software regression, including performance regressions. Continuous
performance benchmarking, as a part of continuous integration and other code
quality testing, is an industry best-practice to understand how the performance
of a software product evolves over time. We present a framework, built from
industry best practices and tools, to help to understand ROOT code performance
and monitor the efficiency of the code for a several processor architectures.
It additionally allows historical performance measurements for ROOT I/O,
vectorization and parallelization sub-systems.Comment: 8 pages, 5 figures, CHEP 2018 - 23rd International Conference on
Computing in High Energy and Nuclear Physic
Extending ROOT through Modules
The ROOT software framework is foundational for the HEP ecosystem, providing
capabilities such as IO, a C++ interpreter, GUI, and math libraries. It uses
object-oriented concepts and build-time components to layer between them. We
believe additional layering formalisms will benefit ROOT and its users. We
present the modularization strategy for ROOT which aims to formalize the
description of existing source components, making available the dependencies
and other metadata externally from the build system, and allow post-install
additions of functionality in the runtime environment. components can then be
grouped into packages, installable from external repositories to deliver
post-install step of missing packages. This provides a mechanism for the wider
software ecosystem to interact with a minimalistic install. Reducing
intra-component dependencies improves maintainability and code hygiene. We
believe helping maintain the smallest "base install" possible will help
embedding use cases. The modularization effort draws inspiration from the Java,
Python, and Swift ecosystems. Keeping aligned with the modern C++, this
strategy relies on forthcoming features such as C++ modules. We hope
formalizing the component layer will provide simpler ROOT installs, improve
extensibility, and decrease the complexity of embedding in other ecosystemsComment: 8 pages, 2 figures, 1 listing, CHEP 2018 - 23rd International
Conference on Computing in High Energy and Nuclear Physic
First performance measurements with the Analysis Grand Challenge
The IRIS-HEP Analysis Grand Challenge (AGC) is designed to be a realistic
environment for investigating how analysis methods scale to the demands of the
HL-LHC. The analysis task is based on publicly available Open Data and allows
for comparing the usability and performance of different approaches and
implementations. It includes all relevant workflow aspects from data delivery
to statistical inference.
The reference implementation for the AGC analysis task is heavily based on
tools from the HEP Python ecosystem. It makes use of novel pieces of
cyberinfrastructure and modern analysis facilities in order to address the data
processing challenges of the HL-LHC.
This contribution compares multiple different analysis implementations and
studies their performance. Differences between the implementations include the
use of multiple data delivery mechanisms and caching setups for the analysis
facilities under investigation.Comment: Submitted as proceedings for 21st International Workshop on Advanced
Computing and Analysis Techniques in Physics Research (ACAT 2022) to Journal
Of Physics: Conference Serie
Optimizing Frameworks Performance Using C++ Modules Aware ROOT
ROOT is a data analysis framework broadly used in and outside of High Energy
Physics (HEP). Since HEP software frameworks always strive for performance
improvements, ROOT was extended with experimental support of runtime C++
Modules. C++ Modules are designed to improve the performance of C++ code
parsing. C++ Modules offers a promising way to improve ROOT's runtime
performance by saving the C++ header parsing time which happens during ROOT
runtime. This paper presents the results and challenges of integrating C++
Modules into ROOT.Comment: 8 pages, 3 figures, 6 listing, CHEP 2018 - 23rd International
Conference on Computing in High Energy and Nuclear Physic
Automatic Differentiation in ROOT
In mathematics and computer algebra, automatic differentiation (AD) is a set
of techniques to evaluate the derivative of a function specified by a computer
program. AD exploits the fact that every computer program, no matter how
complicated, executes a sequence of elementary arithmetic operations (addition,
subtraction, multiplication, division, etc.), elementary functions (exp, log,
sin, cos, etc.) and control flow statements. AD takes source code of a function
as input and produces source code of the derived function. By applying the
chain rule repeatedly to these operations, derivatives of arbitrary order can
be computed automatically, accurately to working precision, and using at most a
small constant factor more arithmetic operations than the original program.
This paper presents AD techniques available in ROOT, supported by Cling, to
produce derivatives of arbitrary C/C++ functions through implementing source
code transformation and employing the chain rule of differential calculus in
both forward mode and reverse mode. We explain its current integration for
gradient computation in TFormula. We demonstrate the correctness and
performance improvements in ROOT's fitting algorithms.Comment: Submitted as a proceeding for CHEP 201
Physics analysis for the HL-LHC: concepts and pipelines in practice with the Analysis Grand Challenge
Realistic environments for prototyping, studying and improving analysis
workflows are a crucial element on the way towards user-friendly physics
analysis at HL-LHC scale. The IRIS-HEP Analysis Grand Challenge (AGC) provides
such an environment. It defines a scalable and modular analysis task that
captures relevant workflow aspects, ranging from large-scale data processing
and handling of systematic uncertainties to statistical inference and analysis
preservation. By being based on publicly available Open Data, the AGC provides
a point of contact for the broader community. Multiple different
implementations of the analysis task that make use of various pipelines and
software stacks already exist. This contribution presents an updated AGC
analysis task. It features a machine learning component and expanded analysis
complexity, including the handling of an extended and more realistic set of
systematic uncertainties. These changes both align the AGC further with
analysis needs at the HL-LHC and allow for probing an increased set of
functionality. Another focus is the showcase of a reference AGC implementation,
which is heavily based on the HEP Python ecosystem and uses modern analysis
facilities. The integration of various data delivery strategies is described,
resulting in multiple analysis pipelines that are compared to each other.Comment: 7 pages, 1 figure, proceedings of CHEP 2023, submitted to EPJ Wo
Machine Learning for Columnar High Energy Physics Analysis
Machine learning (ML) has become an integral component of high energy physics data analyses and is likely to continue to grow in prevalence. Physicists are incorporating ML into many aspects of analysis, from using boosted decision trees to classify particle jets to using unsupervised learning to search for physics beyond the Standard Model. Since ML methods have become so widespread in analysis and these analyses need to be scaled up for HL-LHC data, neatly integrating ML training and inference into scalable analysis workflows will improve the user experience of analysis in the HL-LHC era.
We present the integration of ML training and inference into the IRISHEP Analysis Grand Challenge pipeline to provide an example of how this integration can look like in a realistic analysis environment. We also utilize Open Data to ensure the project’s reach to the broader community. Different approaches for performing ML inference at analysis facilities are investigated and compared, including performing inference through external servers. Since ML techniques are applied for many different types of tasks in physics analyses, we showcase options for ML integration that can be applied to various inference needs
- …