RE: [ROOT] execution speed of compiled programs using ROOT

From: Valeri Fine (fine@bnl.gov)
Date: Thu Aug 14 2003 - 00:02:48 MEST


Hello I don't think any second thread is involved here.
I would have suspected some sort of the compile-time optimization here.

I believe compiler may have figured out what is final value of "r" with
no real loop implementation in the binary code.

  for(long int i=0; i<100000000; i++) {
     r += 0.5;
   }

I mean the method above is not correct to measure the performance
One should take care to break the possible optimization first.

     Valeri

> 
> Hi Thomas,
> 
> I can indeed reproduce the same slowdown by a factor of 2.  I suspect
that
> this is due to the multi-thread nature of the ROOT implementation on
> Windows.  (I.e. the other thread are probably being run).  We will
> check further.
> 
> Cheers,
> Philippe.
> 
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Thomas Nisius
> Sent: Friday, August 08, 2003 7:28 AM
> To: roottalk@pcroot.cern.ch
> Subject: [ROOT] execution speed of compiled programs using ROOT
> 
> 
> Hi,
> 
> when I compile a program that include some root objects, execution
speed
> drops significantly.
> please see the following example:
> 
> #include <time.h>
> #include <iostream>
> using namespace std;
> 
> #include <TH2D.h>
> #define USE_ROOT
> 
> int main(int argc, char* argv[]) {
> 
> #ifdef USE_ROOT
>   TH2D *h = new TH2D("test","test",64,0,1,64,0,1);
>   h->FillRandom("gaus",1000);
> #endif
> 
>   double r=0;
>   double time = clock(); // save the clock
>   for(long int i=0; i<100000000; i++) {
>     r += 0.5;
>   }
>   cout << r << endl;
>   cout << "Duration: " << clock() - time << endl;
>   return 0;
> }
> 
> if in this example 'USE_ROOT' is defined the duration is nearly twice
as
> long as without it.
> (note, that only the execution of the loop is taken into account, not
the
> histo filling)
> 
> I'm using Root 3.05/07 (win32gdk-version) on WinXP & Win2000
> Compiler: MSVC++ 6
> I link libCore.lib and libHist.lib to my Project
> 
> Any suggestions?
> 
> Kind Regards
> Thomas Nisius
>
________________________________________________________________________
__
> Die sicherste Form der Kommunikation: E-Mails verschluesseln,
Spam-Filter,
> Adressverifizierung, digitale Unterschrift: http://freemail.web.de



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET