99th ROOT Parallelism, Performance and Programming Model Meeting

Enrico Guiraud (EP-SFT, CERN) , Stefan Wunsch (KIT - Karlsruhe Institute of Technology (DE))
    • 16:00 17:00
      ROOT I/O performance profiling: what and how 1h
      Speaker: Enrico Guiraud (EP-SFT, CERN)

      - Do we want a tool for users or devs, which can tell us the (I/O) performance of the setup (software + hardware)? (conclusion: we want a global ROOT I/O instrumentation)

      - Do we want the tool to have many knobs or just a few? Everything configurable, not at all or sensible defaults? (rather less than more)

      - We want a mechanic for RNtuple to get the reads in a file for sequential entries (2D plot of reads for location in file)

      - Do we want a tool that gives recommendations to improve the throughput or just performance metrics?

      - It seems like the dev questions to root-readspeed are different than the user questions. Do we want two different tools?
      -> We want definitely a user focused tool, like root-readspeed, to answer for the analyst what blocks the analysis (decompression, network, ...)
      - Do we want root-readspeed as standalone tool or an instrumentation of RDataFrame?
      -> We want an instrumentation of ROOT, without touching the user code, to get such metrics!

      - Conclusion (for now): We want a TTreePerfStats-like global instrumentation of the ROOT I/O, to be enabled in a debug mode.
      - TTree: Should be possible without large-scale changes
      - RNtuple: Only vaguely planned
      - Favored solution would be an environment variable and a perf-like output file, which can be nicely visualized later.
      - Still, root-readspeed is also a perfect tool to get the very best I/O throughput (e.g. just sequential reads)