37th ROOT Parallelism, Performance and Programming Model

Europe/Zurich
4/S-030 (CERN)

4/S-030

CERN

30
Show room on map
Danilo Piparo (CERN)

Present: Stefan, Xavi, Guilherme, Gerri, Enrico, Danilo, Axel, Philippe

PyROOT

Two main points, both targeting 6.14

1) Take contiguous memory and take it as numpyarray in Python (PR1777 being finalised). We go for the Python solution in the first place and evolve to the C++ one later.

2) Retrieve columns of a TTree as numpy arrays. Programming model: mytree.AsMatrix("col1", "col2", "colN"). There is no PR yet but we have a demonstrator with TDF powering the conversion. Stefan will do possibly a PR today or tomorrow - beginning of next week if problems arise.

Invocation of JITting once per event loop ROOT-9349

A problem to jit filters and defines if very numerous (a few hundreds): it simply does not scale. The strategy is clear and work at full steam. The full updated description is in the JIRA item.

Alice

- TArrowDS integrated, being tested now in the builds, today Rafal added Arrow to py3 externals so also the py3 builds will be fixed

- Problem: the name arrow is used in the TArrowDS header and ends up in the PCH. We removed all the usage of the name "arrow" in the global scope (e.g. in TSpectrum examples) but maybe we can do better. Potential solution: remove the header from the pch! (thanks axel)

- Giulio working on an upgrade of the source to handle looping of combinations of objects, also coming from different events. This is not handled by ROOT in general but will be solved by the TDF+TDS approach. The development may or may not arrive for 6.14 but this is not a disaster since Giulio alone for the moment is the producer and consumer of this code.

TDF out of Experimental

1) We agree on the strategy to move it out of the namespace and the workitems related to it are already linked to the story ROOT-9164

2) We need to discuss the distributed snapshot, a problem raised by Enric in order to make sure that closing the interface will not put us in a corner of the phase space.

Minimal Vectorisation Upgrade of ROOT

The idea for 6.14 is to rewrite some operations in TVec: *,/,+ and so on, move explicit specialisation into the VecOps library and compile it with aggressive compiler flags in order to autovectorise. To this we may also add VDT functions. To this we could add explicit vectorisation with VecCore: this is very modular and we can achieve as much as we manage. In any case every case it's all hidden to the user!

 

 

There are minutes attached to this event. Show them.