ROOT News: v6.24, what 2021 will bring, and a surprise

(5 May 2021)

With 6.24 out the door it’s worthwhile to see what it brings. We would also like to hear your thoughts on our plans for 2021 that we’ll share with you here. And because we want to thank you for reading this (and as an extra motivation to participate) we’ll have a little contest with a prize!

ROOT v6.24

Generally we have two big releases per year - but v6.24/00 took a bit longer: we really wanted to have the upgrade to LLVM 9 in, for full C++17 support and many bug fixes!

But there’s more: ROOT::RDF::RunGraphs can run multiple RDataFrames in parallel. That’s an easy way to evaluate, for instance, uncertainty variations concurrently.

And look at this:

RDataFrame = ROOT.RDF.Experimental.Distributed.Spark.RDataFrame

It’s running your RDataFrame on a Spark cluster! To see how it works, check the new tutorial. Once we are happy, this will be our recommended replacement for good old PROOF.

We have converted the blazingly fast RANLUX++ implementation from x86 assembly to portable C++. And it’s equally fast as the assembler version! It will be presented at vCHEP - including a fix for a bug in the assembly version, discovered by Martin Lüscher, the original author of RANLUX.

Still in the math department, TMVA can now interface with PyTorch as a more flexible alternative to PyKeras. RooFit has several big improvements under the hood; we expect that since v6.20, typical uses of RooFit will be accelerated by a factor 4 to 16! Several of you were using community-developed implementations called RooDSCBShape and RooSDSCBShape. We have integrated them (and significantly improved them!) as RooCrystalBall, so please switch!

If you want to see all the new features and all the squashed bugs then please check the release notes. To get ROOT v6.24, you could for instance use conda, snap, MacPorts, Homebrew (soon), or some of the other ways (including downloading binaries). If you’re using the LCG release: ROOT 6.24/00 is part of LCG100.

Plans for 2021

In the beginning of every year, the ROOT team discusses with the experiments what we will be working on during that year. We publish that, so you can track how often we manage to actually do what we plan to do! More seriously, it’s our way of inviting feedback for you to influence our priorities. So let’s do that: I tell you what we plan to work on, and you tell us what’s missing, and what’s more important than other items!

For us, for 2021, the main items are:

  • progress with distributed RDataFrame, adding for instance Dask support;
  • pushing training data from RDataFrame into machine learning through python generators;
  • adding support for parameter variation (systematics) in RDataFrame within a single event loop;
  • adding support for datasets / categories in RDataFrame, so you can easily handle histograms from MC vs data samples;
  • high-performance, efficient, and “no frills” (i.e. no dependencies!) ONNX-model evaluations;
  • super-fast RooFit computations on the GPU, transparently (i.e. just automagically if you have a GPU);
  • switching to the new RBrowser by default

There are a couple of “high intensity” developments ongoing for LHC’s high-luminosity future, such as RNTuple, and more “software engineering” or framework-oriented ones such as modular CMake “superbuilds”, interpreter debug symbols and optimization - but that should either “just work” or will only arrive at your ROOT in the future. As you can see and as you probably know, some developments need lots of time: we need to do research, we need to benchmark, collect usage feedback, compare with alternatives, etc. And we don’t always have the helping and coding hands we need. So even if you don’t see ROOT’s new graphics system and new histograms up there: they are expected to progress, also in 2021. We think they are crucial to make ROOT easier to use and future-proof, but we will only blog about them once we think you should try them out.

Please let us know below if ROOT is missing a crucial feature, for you, your analysis, or your way of working!

The Competition

We have this new web site, people seem to like it, but it has a big problem: The 404-page isn’t customized! As we are using Jekyll, it’s super-easy to do. We just never felt like that’s more important than whatever else we have to do :-)

If you submit a pull request against our web site repo for a custom ROOT 404 page, and we select your proposal, then we’ll be sending you a Raspberry Pi Zero WH (i.e. with wifi, bluetooth, and pre-soldered GPIO headers), leftover from an earlier ROOT workshop, for you to play with, complete with HDMI and USB OTG adapter and SD card! And yes, that totally runs ROOT, too! If you win, the whole community will be enjoying your page whenever people look at ROOT forum posts from 20 years ago!