Published September 22, 2023 | Version v1

Comparative Benchmarks for RooFit in Python

Authors/Creators

  • 1. ROR icon University of Göttingen

Contributors

  • 1. ROR icon European Organization for Nuclear Research

Description

The statistical models that are used in modern High Energy Physics (HEP) research are independent of their specific implementations. As a consequence, many different tools have been developed to perform statistical analyses in HEP. These implementations differ both in their performance, but also in their usability. In this scenario, comparative benchmarks are essential to aid users in choosing a library and to support developers in resolving bottlenecks or usability shortcomings. The goal of this project was to make a comparison of some of the most used tools in statistical analyses. The Python package pyhf focuses on template histogram fits, which are the backbone of many analyses at the ATLAS and CMS experiments. In contrast, zfit mainly focuses on unbinned fits to analytical functions. These frameworks are compared to the C++ library RooFit, which is used via Python bindings. RooFit can perform both template histogram fits and unbinned fits and is thus compared to both other packages. The benchmarks show that the RooFit backends 'legacy' and 'cpu' perform best for template histogram fits with few bins, while the JAX backend of pyhf is the fastest backend for many bins. For multiple channels, all pyhf backends perform much worse. In unbinned fits, the 'cpu' and 'cuda' modes of RooFit perform much better than the zfit implementation on both CPU and GPU. The 'codegen' mode, using AD, performs better than the default for many events.

Files

Summer_Student_Report_Daniel_Werner.pdf

Files (1.8 MB)

Name Size Download all
md5:9965e22c29b65f0623171570944bab54
1.8 MB Preview Download

Additional details

Identifiers

CDS Report Number
CERN-STUDENTS-Note-2023-169

CERN

Linked records