Speaker
Description
When dealing with the processing of large amount of data, the rate at which the
reading and writing can tale place is a critical factor. High Energy Physics
data processing relying on ROOT based persistification is no exception.
The recent parallelisation of LHC experiments' software frameworks and the
analysis of the ever increasing amount of collision data collected by
experiments further emphasised this issue underlying the need of increasing
the implicit parallelism expressed within the ROOT I/O.
In this contribution we highlight the improvements of the ROOT I/O subsystem
which targeted a satisfactory scaling behaviour in a multithreaded context.
The effect of parallelism on the individual steps which are chained by ROOT to
read and write data, namely (de)compression, (de)serialisation, access to storage
backend, are discussed.
Details relevant for the programming model associated to these innovations are
characterised as well as description of the design choices adopted such as
the streamlining of the asynchronous operations via a task based approach relying
on the same engine exploited by experiments to guarantee parallel execution, the Intel TBB library.
Measurements of the benefit of the aforementioned advancements are discussed through
real life examples coming from the set of CMS production workflows on traditional server platforms and highly parallel architectures such as Xeon Phi.