Abstract

Following the release of version 6, ROOT has entered a new area of development. It will leverage the industrial strength compiler library shipping in ROOT 6 and its support of the C++11/14 standard, to significantly simplify and harden ROOT's interfaces and to clarify and substantially improve ROOT's support for multi-threaded environments. This talk will also recap the most important new features and enhancements in ROOT in general, focusing on those allowed by the improved interpreter and better compiler support, including I/O for smart pointers, easier type safe access to the content of TTrees and enhanced multi processor support.

Highlights

  • After almost 20 years of use and development, ROOT [1] continues to be an essential component of HEP experiment’s software stack

  • As the hardware and software environment continually evolves and improves outside of HEP, our software stacks needs to adapt to take advantage of new opportunities and address challenges posed by the changing tradeoffs and architectures

  • One of the constructs supported by C++11, atomically accessible variable, is not yet fully recognized by Helgrind and issues false positive warnings about the access to these variables. To hide these false positives, and all the others cases discovered during this work, we provide two Valgrind suppressions files: $ROOTSYS/etc/valgrind-root.supp and $ROOTSYS/etc/helgrind-root.supp

Read more

Summary

Introduction

After almost 20 years of use and development, ROOT [1] continues to be an essential component of HEP experiment’s software stack. In conjunction with a slower decline in memory price, this means that in order to benefit from the processing power of the latest chips, we need to review our software architecture and increase the amount of work that can be done in parallel within a similar memory budget. To tackle these two challenges, ROOT has undergone two main transformations, one is the evolution of the code and infrastructure to be able to take advantage of C++11 and later, the second is the adaptation of the core libraries to be run in multiple concurrent threads. A much more comprehensive list is available in the release notes of each ROOT version [1]

Core Library
Findings
Conclusion
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