Abstract

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.

Highlights

  • The core part of High Energy Physics (HEP) data analysis framework ROOT [1] is the C++ interpreter Cling

  • Since HEP software frameworks always strive for performance improvements, ROOT was extended with experimental support of runtime C++ Modules

  • This paper presents the results and challenges of integrating C++ Modules into ROOT

Read more

Summary

Introduction

Cling is build on the top of the C++ compiler Clang and it allows users to enable interactive ROOT sessions It serves as a backend for ROOT’s language bindings such as ROOT Python extension module PyROOT. In order to offer these features, Cling has to parse source code during runtime This includes the code manually entered by the user from a command line, and a multitude of the header files coming from libraries and frameworks. Modules are becoming a promising technology for C++ community and since the adoption of C++ Modules into ROOT was already proposed earlier in paper [2] and we implemented them in ROOT and its interpreter Cling This allowed us to avoid the expensive parsing of headers and improve ROOT’s runtime performance

Background
Optimizing ROOT using a PCH
Performance Results
Limitations and Future work
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call