Benchmarking

Running the ROOT benchmark suite

The ROOT standard distribution kit includes a long list of test programs. Some of these test programs are used to benchmark the performance of ROOT. The suite includes:

  • stress -b: well known root test (mixture of I/O and CPU) 1000 events
  • stress -b 30: well known root test (mixture of I/O and CPU) 30 events only
  • stressFit: random number generation and fitting with TMinuit
  • stressSpectrum: peak search (typical pattern recognition)
  • stressLinear: linear algebra test
  • stressGraphics: histogram/curve drawing
  • stressGeometry: typical profile of geometry usage by a Monte-Carlo program
  • stressHepix: a global benchmark (see below)

All benchmarks report the total RealTime and CpuTime and also a performance number (ROOTMARK). All stress programs have been normalized to 800 ROOTMARKS on a P IV 2.8 Ghz with Linux and gcc 3.2.3. If you have interesting benchmarks (new machine, compiler) with the complete test suite, please send the results in html source format to rootdev@cern.ch. For those interested to run the ROOT benchmark suite, here are the instructions:

First step - Install ROOT

The complete instructions are available at the ROOT installation from source page. If you are interested only by the benchmark suite, you can install using the default configure options, i.e. just "./configure".

Second step - Run the Benchmarks

     $ . bin/thisroot.sh
     $ cd test
     $ make
     $ 
     #--    you are now ready to run the benchmark suite
     $ stress -b
     $ stress -b 30
     $ stressFit
     $ stressSpectrum
     $ stressLinear
     $ stressGraphics
     $ stressGeometry

Some Results

The stressHepix Benchmark

HEPiX-HEPNT is an organization comprised of UNIX and Windows support staff in the High Energy Physics community. One of the HEPIX activities is to gather knowledge about new hardware and software and to recommend common solutions (e.g. Scientific Linux) see the HEPIX web site.

This benchmark suite has been implemented following several requests from HEPIX members interested by a collection of benchmarks representative of a typical HEP workload.

The stressHepix benchmark is a single benchmark including several standard ROOT benchmarks with a mixture of CPU intensive tests and I/O tests. The output of stressHepix is one single number (the ROOTMARK). A Pentium IV 2.8GHz running Linux SLC3 and gcc 3.2.3 runs this benchmark with a reference at 800 ROOTMARKs.

To build the executable for this benchmark, do:

   $ cd $ROOTSYS/test
   $ make
The default configuration of ROOT is enough. The output of this benchmark looks like:
$ stressHepix
 
Starting stressHepix benchmark (details will be in stressHepix.log)
Takes 442 CP seconds on a  500 rootmarks machine (IBM Thinkpad centrino 1.4GHz VC++7.1)
Takes 278 CP seconds on a  800 rootmarks reference machine (P IV 2.8 GHz, SLC3 gcc3.2.3)
Takes 239 CP seconds on a  924 rootmarks machine (MacBook 2.0GHz gcc4.0.1)
Takes 209 CP seconds on a 1056 rootmarks machine (MacBook 2.0GHz icc9.1)
Takes 147 CP seconds on a 1512 rootmarks machine (MacPro 3.0GHz gcc4.0.1)
Takes 142 CP seconds on a 1550 rootmarks machine (AMD64/280, FC5 gcc4.1)
Takes 121 CP seconds on a 1828 rootmarks machine (MacPro 3.0GHz icc9.1)
 
Running : stressFit Minuit  2000, (takes 11 RT seconds on the ref machine)
Running : stressLinear, (takes 26 RT seconds on the ref machine)
Running : stressGeometry, (takes 77 RT seconds on the ref machine)
Running : stressSpectrum 1000, (takes 116 RT seconds on the ref machine)
Running : stress -b 3000, (takes 138 RT seconds on the ref machine)
 
 
****************************************************************************
*                                                                          *
*               S T R E S S   H E P I X  S U M M A R Y                     *
*                                                                          *
*       ROOTMARKS = 789.3   *  Root5.13/03   20060830/1441
*                                                                          *
*  Real Time =  401.1 seconds, CpuTime =  281.8 seconds
*  Linux pcbrun 2.4.21-47.EL.cernsmp #1 SMP Mon Jul 24 15:33:5
****************************************************************************

If you run this benchmark on a new platform, please report the results to rootdev. Send the output shown above and also the log file stressHepix.log that contains more details about the individual tests. Your results will be shown on this page.