Jul 9 – 13, 2018
Sofia, Bulgaria
Europe/Sofia timezone

Vectorization of ROOT Mathematical Libraries

Jul 9, 2018, 3:45 PM
Hall 3 (National Palace of Culture)

Hall 3

National Palace of Culture

presentation Track 5 – Software development T5 - Software development


Lorenzo Moneta (CERN)


In order to take full advantage of new computer architectures and to satisfy the requirement of minimising the CPU usage with increasing amount of data to analysis, parallelisation and SIMD vectorisation have been introduced in the ROOT mathematical libraries. The VecCore library provides a very convenient solution to abstract SIMD vectorization and it has been found extremely useful for integrating vectorisation into an existing software. VecCore features a simple API to write SIMD-enabled algorithms, by avoiding using directly lower level vectorisation libraries. Furthermore VecCore supports several back-end such as Vc and UME::SIMD.
We describe first how VecCore is integrated into ROOT and how it has been applied to implement SIMD vectorization in some of the most commonly used Mathematical functions. We report as well how the SIMD vectorisation has been deployed for describing model functions, which can be used for fitting. In particular, we show how ROOT functions built with a string expression such as those based on the ROOT TFormula class, or functions provided by users, can be vectorised and used for speeding up fitting on large data sets. We report performance figures from benchmarks on different architectures, such Intel Xeon and Xeon Phi processors, showing the gains from using SIMD parallelism.

Primary authors

Lorenzo Moneta (CERN) Xavier Valls Pla (University Jaume I (ES)) Guilherme Amadio (CERN)

Presentation materials