Re: Multi-thread and TTree

From: Rene Brun <>
Date: Tue, 19 Dec 2006 15:10:39 +0100


What you describe is precisely what the PROOF system is doing. See: etc

Rene Brun

Antonio Bulgheroni wrote:
> Dear ROOTers,
> I have browsed the ROOT-Talk archive but I wasn't able to find
> an updated answer to my question. This is what I would like to do:
> I have a TFile with a TTree containing lots of events and I want to
> process them in parallel. Since I just have to apply the same
> procedure to all events, I think that the easiest possible way to
> perform parallel computing is to split the amount of events among
> different threads each of which is doing the same things.
> Here comes the first question. I've read somewhere that ROOT I/O is
> not (yet) thread safe. Does it mean that different threads cannot
> GetEntry from the same TTree on one TFile? Should I TMutex::Lock() and
> UnLock() each GetEntry() call?
> During the event process, I would like to fill a bunch of histograms
> and an output TTree. Can it be done by different threads? Again,
> should I mute every Fill() call?
> In the TThreadFactory abstract base class it is written that depending
> on which factory is active one gets the Posix or Win32 implementation
> of the TThread but I'm not able to find the TWin32Thread. Does it exist?
> I'm using ROOT 5.15/01 on a Fedora Core 4 linux box with gcc 4.0.2
> Thank you very much for your help,
> regards,
> Antonio
> --
> Antonio Bulgheroni, PhD
Received on Tue Dec 19 2006 - 15:11:01 MET

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:32:02 MET