ROOT Parallelisation, Performance and Programming Model Meeting

Europe/Zurich
40/R-A10 (CERN)

40/R-A10

CERN

20
Show room on map
Danilo Piparo (CERN)
Description
CERN number: 71400 Extension: 109284483#

Present: Danilo, Enric, Guilherme, Enrico, Pere, Jim, Philippe

TDF Sprint

TDF From an Empty source
- Interface: In practice translatable to a constructor with the number of entries to be created
- Implementation: two routes
  1. Base everything on TTree and create for example an TTreeEmpty
  2. Write sources also not based on TTrees, such as in the empty source case
- If we go for 2. we can add an if in the Run method and rely in TThreadedExecutor (prototype already available)
- If we go for 1. we can use all as it is and modify the TTreeProcessorMT which has to deal with a file which does not really exists
- It is understood that we'll discuss the data sources after 6.10
- Axel's comment: https://sft.its.cern.ch/jira/browse/ROOT-8757?focusedCommentId=81030 "Stop when this number of entries after N filters has been achieved".
  - We recognise the importance of the feature
  - We shift the discussion to the next release: we don't have an implementation plan (analogy with Ranges) and a clear picture of the usecase.

Decision: We will go for the "special TTrees" TTreeProcessorMT. We add a constructor where we pass a name of a file or an sql db or a csv file. We'll look into the header of the file to infer its type or/and decide based on its extension if this is not possible.

Parallel tree writing
- PR on github: 533
- We take note of the comments of Vassil and agree with them
- We want a factory pattern where the "merging files" are created starting from a server
- We want to expose the THreadedObject and the 2 classes as well
- The queue shall be put in ROOT::Internal in core/cont if at all
- Metaquestion: used by GV, ROOT. Do we need to have this and other containers in veccore?

Generalised jit driven type inference
- PR 532
- Extend the mechanism to all methods
- Type inference shall be there also for Snapshot and Generic fill: we will look into the jitting of Define and Filter for that

We did not have the time to discuss the split of libThread into two components, one for threading utilities and one for expression of parallelism, where the latter depends on TBB.

 

There are minutes attached to this event. Show them.
    • 16:00 17:00
      Round table 1h
      • Status of the tasks related to the TDataFrame sprint
      • TBB Dependency in ROOT cling
      • Future evolution of TDF Data Sources
      • AOB