Analysis benchmarks for grid and HPC

Initial description for the Openlab Student project proposed for the summer of 2020 that I supervised.

To be updated with the student report and probably a paper once they are available.

Project description#

CERN measures the performance of computers based on typical computing patterns that happen “in real life”. One such pattern is analysis. This project proposes to extract existing example analyses to create a benchmarking utility for computers or HPC systems. This utility can then serve to describe a system’s performance for running typical analyses. Example analyses already exist in the context of the main analysis software of high energy physics, ROOT (https://root.cern), for instance leveraging CERN’s open data. The student would convert such analyses into a stand-alone program, and make it accessible as a benchmark.

Deliverables#

  • A stand-alone program representative of HEP analysis benchmarks to describe the performance of a particular system.
  • A new HEP analysis workload for hepscore

Desiderata#

  • Identify an analysis WL that runs on CPU and on CPU+GPU
  • Identify an analysis WL for each of the LHC experiments (or at least for ATLAS and CMS)
  • Identify analysis WL for train processing

Where to start#

  • Read the resources in the section below
  • Meet with co-mentors, openlab HPC (every Tuesday at 14:00) and ROOT’s performance team
  • Run the different benchmarks available (how to run) in some of our systems, observe the results, interact with Kibana and its reporting
  • Inspect and understand the current code for the benchmarks on the experiment workloads
  • Gather the candidate benchmarks from ROOT
  • Implement the solution

Resources#

HEP Benchmarks project#

Root project#

Getting ROOT#

Sourcing a pre-compiled version of ROOT

There are several options when it comes to sourcing ROOT instead of building it or installing it. However, as building it with a specific set of features might be required (e.g. HPX, right now a proof of concept), starting the gentoo prefix provided by Guilherme Amadio in CVMFS will be the preferred option.

By executing

/cvmfs/sft.cern.ch/lcg/contrib/gentoo/startprefix

in a machine with access to CVMFS, the user will have available both ROOT and every library required to build it.

Alternatives:

  • Sourcing one of the LCG software releases from CVMFS. Instructions can be found here.
  • Installing ROOT from your package manager (not recommended)
  • Running a docker container
  • Building and installing ROOT taking care of the dependencies manually

Building ROOT

Follow the instructions here. You probably want to source the externals from CVMFS (Gentoo prefix or CVMFS releases from the previous section) and build it with ccache=on.