Re: [ROOT] ROOT 20 times slower

From: Pasha Murat (murat@fnal.gov)
Date: Wed Jan 23 2002 - 04:46:21 MET


I think I know what is the problem - after CINT breakes on your code,
it disables do bytecode optimization, so when you're running against 
3.02/06 your bytecode is optimized, when you're running against 3.02/07 -
it is not.  Try to get rid of a break.
In general it is a VERY god idea to start using script compiler - 
you'get another factor of several in performance.
							best, Pasha

On Tue, 22 Jan 2002 21:48:44 -0500
"Kalen Martens" <fmartens@physics.utoronto.ca> wrote:

> Hi Again,
> 
> I've narrowed down the problem a little more. 
> 
> Yes, my PATH and LD_LIBRARY_PATH variables point to the new version. I
> never used the TTree::MakeCode in 3.02/07 to create my analysis code, but
> it does appear when I use it in 3.02/07.
> 
> Below is the short bit of code from my h3333.C that generates a
> segmentation fault in 3.02/07 when it is first run. The interpreter
> recovers, and when it is run again, it takes a long time to go through the
> 50K events in the root file. The ROOT version 3.01/06 has no problem
> running this.
> 
> (I loaded libPhysics.so at the beginning of the code.)
> 
> //     This is the loop skeleton
> 
>    TH1F *hmj = new TH1F("hmj", "muon-jet separation", 100, 0, 10);
> 
>    Int_t nentries = h3333->GetEntries();
>    
>    for (Int_t i=0; i<nentries;i++) {
>       h3333->GetEntry(i);
>       for (Int_t ii=0 ; ii<Npart ; ii++) {
>    
>          if ( TMath::Abs(Kfpar[ii]) == 13 ) {
>    
>             TVector3  p_muon(Pxpar[ii], Pypar[ii], Pzpar[ii]);
> 
>             for ( Int_t iii=0 ; iii<Njeta ; iii++) {
> 
>                Double_t rap_muon;
> 
>                rap_muon=p_muon.Eta();
>                hmj -> Fill(rap_muon);
> 
>             }
>          }
>       }
>    }
> 
> I've just had a thought on this. Looking in TVector3.h, the constructor
> looks like:
> 
> TVector3(Double_t x = 0.0, Double_t y = 0.0, Double_t z = 0.0);
> 
> The variables Pxpar[ii], etc, are of type Float_t. Is this the problem? I
> can't find anywhere that tells me either that ROOT does an implicit
> conversion, or how to do a conversion explicitly between these data types,
> so I can't check it myself. 
> 
> Thanks,
> 	-Kalen
> 
> On Tue, 22 Jan 2002, Rene Brun wrote:
> 
> > Hi Kalen,
> > 
> > I tried converting an old ATLFAST ntuple file into a ROOT file via h2root.
> > I generated the analysis code with TTree::MakeCode. 3.02/07 is slightly faster
> > than 3.01/06.
> > When you moved to 3.02/07, are you sure that you also changed your PATH
> > and LD_LIBRARY_PATH variables to point to the new version?
> > 
> > When you execute TTree::MakeCode, you should have received the following
> > warning message:
> > 
> >  h3333.MakeCode("h3333.C")
> > Warning in <TTree::MakeCode>: MakeCode is obsolete. Use MakeClass or
> > MakeSelector instead
> > 
> > Did you modify the generated code? Did you activate/deactivate some branches?
> > 
> > Rene Brun
> > 
> > Kalen Martens wrote:
> > > 
> > > Dear ROOTers,
> > > 
> > > I was using ROOT version 3.01/06 for some time. Using h2root, I converted
> > > a 50K event ntuple made with ATLFAST into a .root file. I used the
> > > TTree::MakeCode() method on the root file and created my script which
> > > took about 30 seconds to run with version 3.01/06.
> > > 
> > > I downloaded and installed the binary version 3.02/07. That exact same
> > > script now took 10 minutes to run! Another side effect (related, perhaps)
> > > is that a segmentation fault occurs when I run this script for the first
> > > time after starting ROOT. The segmentation fault is non-fatal and the
> > > interpreter recovers.
> > > 
> > > I can't figure out where the speed is lost and why the segmentation fault
> > > occurs. Maybe it's a backwards non-compatability? Any idea would be
> > > appreciated.
> > > 
> > > I'm back using 3.01/06 for now.
> > > 
> > > Thanks,
> > >         -Kalen
> > > 
> > > -----------------------------------------------------------------
> > > - Kalen Martens                              Ph:(416)-978-6632  -
> > > - Dept. of Physics                                              -
> > > - University of Toronto, Toronto, Canada                        -
> > > -----------------------------------------------------------------
> > 
> 
> 


-- 
                                        -best, Pasha



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:39 MET