RE: Benchmarking ROOT 2.21/07 + PGCC (2)

Valery Fine (fine@bnl.gov)
Fri, 12 Mar 1999 10:46:54 -0500


>
> Nobody commented my results, but I'm still curious :
> ----------------------------------- compiled "stress"
> stress : Total I/O = 425.6 Mbytes, I = 296.4, O = 129.3
> stress : Compr I/O = 407.4 Mbytes, I = 286.3, O = 121.0
> stress : Real Time = 98.70 seconds Cpu Time = 83.92 seconds
> * ROOTMARKS = 160.4 * Root 2.21/07 990308/1327
> ----------------------------------- interpreted "stress"
> stress : Total I/O = 425.6 Mbytes, I = 296.4, O = 129.3
> stress : Compr I/O = 407.4 Mbytes, I = 286.3, O = 121.0
> stress : Real Time = 185.76 seconds Cpu Time = 167.58 seconds
> * ROOTMARKS = 152.3 * Root 2.21/07 990308/1327
> -----------------------------------
> Note : both the Real Time and the Cpu Time of the interpreted "stress" are
> about twice of the compiled "stress". But ROOTMARKS are the same ?
> What's going on ?
> The stress code calculates the ROOTMARKS as follows:

stress.cxx:
[ . . . ]
#ifndef __CINT__
Float_t rt_hp10 = 171; //HP times with the native compiler
Float_t cp_hp10 = 152;
Float_t rt_hp1000 = 674;
Float_t cp_hp1000 = 411;
#else
Float_t rt_hp10 = 476; //HP times with CINT
Float_t cp_hp10 = 451; //The difference is essentially coming from
stress16
Float_t rt_hp1000 = 1165;
Float_t cp_hp1000 = 828;
#endif
Float_t cp_hp = cp_hp1000 - (cp_hp1000 -
cp_hp10)*(1000-nevent)/(1000-10);
Float_t rt_hp = rt_hp1000 - (rt_hp1000 -
rt_hp10)*(1000-nevent)/(1000-10);
Float_t rt = gBenchmark->GetRealTime("stress");
Float_t ct = gBenchmark->GetCpuTime("stress");
Float_t rootmarks = 27*(rt_hp + cp_hp)/(rt + ct);

So one can reailze it does use two different sets of the constants for
compiled and interpretred codes.
For example for my Gateway 2000/233 I got:

stress : Real Time = 217.29 seconds Cpu Time = 138.09 seconds
ROOTMARKS = 82.4 * Root 2.21/06 990311/1150
vs
stress : Real Time = 325.95 seconds Cpu Time = 248.34 seconds
ROOTMARKS = 93.7 * Root 2.21/06 990311/1150

since the factors
27*(rt_hp + cp_hp)
used to normalised thses numbers are:
either 53811.0 or 29295.0

53811.0 / 29295.0 = 1.84

Since my computer 233 Mhz I expect the ROOTMARK for 400 Mhz should

(400/233)*93.7 = 161 ROOTMARKS (your number is 160.4 )
(400/233)*82.4 = 141 ROOTMARKS (your number is 152.3 )

E:\users\root\test>stress 1000
******************************************************************
* Starting R O O T - S T R E S S test suite with 1000 events
******************************************************************
Test 1 : Functions, Random Numbers, Histogram Fits............. OK
Test 2 : Check size & compression factor of a Root file........ OK
Test 3 : Purge, Reuse of gaps in TFile......................... OK
Test 4 : Test of 2-d histograms, functions, 2-d fits........... OK
Test 5 : Test graphics & Postscript............................ OK
Test 6 : Test subdirectories in a Root file.................... OK
Test 7 : TNtuple, selections, TCut, TCutG, TEventList.......... OK
Test 8 : Trees split and compression modes..................... OK
Test 9 : Analyze Event.root file of stress 8................... OK
Test 10 : Create 10 files starting from Event.root.............. OK
Test 11 : Test chains of Trees using the 10 files............... OK
Test 12 : Compare histograms of test 9 and 11................... OK
Test 13 : Test merging files of a chain......................... OK
Test 14 : Check correct rebuilt of Event.root in test 13........ OK
Test 15 : Divert Tree branches to separate files................ OK
Test 16 : CINT test (3 nested loops) with LHCb trigger.......... OK
******************************************************************
* Windows_NT x86 Family 6 Model 3 Stepping 3, GenuineIntel
******************************************************************
stress : Total I/O = 425.6 Mbytes, I = 296.4, O = 129.3
stress : Compr I/O = 407.4 Mbytes, I = 286.3, O = 121.0
stress : Real Time = 217.29 seconds Cpu Time = 138.09 seconds
Bench factor = 29295.000000
******************************************************************
* ROOTMARKS = 82.4 * Root 2.21/06 990311/1150
******************************************************************

******************************************************************
* Starting R O O T - S T R E S S test suite with 1000 events
******************************************************************
Test 1 : Functions, Random Numbers, Histogram Fits............. OK
Test 2 : Check size & compression factor of a Root file........ OK
Test 3 : Purge, Reuse of gaps in TFile......................... OK
Test 4 : Test of 2-d histograms, functions, 2-d fits........... OK
[ snip ]
******************************************************************
* Windows_NT x86 Family 6 Model 3 Stepping 3, GenuineIntel
******************************************************************
stress : Total I/O = 425.6 Mbytes, I = 296.4, O = 129.3
stress : Compr I/O = 407.4 Mbytes, I = 286.3, O = 121.0
stress : Real Time = 325.95 seconds Cpu Time = 248.34 seconds
Bench factor = 53811.000000
******************************************************************
* ROOTMARKS = 93.7 * Root 2.21/06 990311/1150
******************************************************************