Re: Multi-thread and TTree

From: Jan Iwaszkiewicz <jani_at_cern.ch>
Date: Wed, 20 Dec 2006 17:04:06 +0100


Hi,

Now the PROOF installation wiki includes example which shall be useful for you:
http://root.cern.ch/twiki/bin/view/ROOT/ProofInstallation#Example_1_master_and_two_workers

This example uses xproofd, not proofd. Proofd works but current development concentrates on xproofd so I suggest using it. Once you have the PROOF server running, type: TProof* proof = TProof::Open("localhost") or use the PROOF GUI TProof::Open()
(http://root.cern.ch/twiki/bin/view/ROOT/ProofGUI).

Good Luck!
Jan

Jan Iwaszkiewicz wrote:

> Hi Antonio,
> 
> The prefered way of starting a PROOF session is now by:
> TProof::Open("localhost")
> 
> I will put more info about the local machine setup this afternoon on our 
> current PROOF website:
> http://root.cern.ch/twiki/bin/view/ROOT/PROOF
> 
> Cheers,
> Jan
> 
> Antonio Bulgheroni wrote:

>> Dear Leandro,
>> thanks for the link. It's very good. But I've a problem I
>> cannot solve.
>>
>> I followed the procedure and I copied the installation dir into
>> /usr/local/ even if I'm used to have it in /cern (is it really needed?)
>>
>> I added the xinetd services and I'm able to connect remotely via rootd.
>>
>> I wrote the following configuration file for PROOF in
>> /usr/local/root/etc/proof/proof.conf
>>
>> master 192.168.10.246 <http://192.168.10.246> image=local
>>
>> worker 192.168.10.246 <http://192.168.10.246> perf=100 image=local
>> worker 192.168.10.246 <http://192.168.10.246> perf=100 image=local
>>
>> where 192.168.10.246 <http://192.168.10.246> is the IP address of the
>> host. I've also tried with localhost but with the same results.
>>
>> But when I start ROOT and I type gROOT->Proof(" 192.168.10.246
>> <http://192.168.10.246>") I get:
>>
>> Error: Can't call TROOT::Proof("192.168.10.246
>> <http://192.168.10.246>") in current scope (tmpfile):1:
>> Possible candidates are...
>> *** Interpreter error recovered ***
>>
>> In fact, Proof is not an allowed completion of gROOT. What I'm missing?
>>
>> I'm using ROOT 5.15/01 on a FC4 with gcc 4.
>>
>>
>> Thanks for your help,
>>
>> Antonio
>>
>>
>>
>> On 12/19/06, *Leandro Franco* <lfranco_at_cern.ch
>> <mailto:lfranco_at_cern.ch>> wrote:
>>
>>
>> Hi...
>>
>> Yes, you can use it in multi-core machines. But you have to add your
>> local machine as a Master and you have to add the same machine as a
>> slave (or slaves) also.
>> You can find an example here:
>> http://pnilsson.web.cern.ch/pnilsson/PROOF_install_notes.htm
>> <http://pnilsson.web.cern.ch/pnilsson/PROOF_install_notes.htm>
>>
>>
>> The idea is to make this process transparent to the user but it will
>> take some time.
>>
>>
>> Cheers,
>> Leo
>>
>> On Dec 19, 2006, at 5:37 PM, Antonio Bulgheroni wrote:
>>
>>> Dear Rene,
>>> thanks for the prompt answer, I'm having a look to the
>>> websites you suggested me. Do you think that PROOF can be
>>> exploited also on a multi-processor PC and not on a cluster (this
>>> is actually my case)?
>>>
>>> Thanks again,
>>>
>>> Antonio
>>>
>>> -- Antonio Bulgheroni, PhD
>>>
>>> Win98 error 009: Press any key to continue or any other key to quit.
>>>
>>> On 12/19/06, * Rene Brun* <Rene.Brun_at_cern.ch
>>> <mailto:Rene.Brun_at_cern.ch>> wrote:
>>>
>>> Antonio,
>>>
>>> What you describe is precisely what the PROOF system is doing.
>>> See:
>>> http://higweb.lns.mit.edu/twikis/proof/bin/view/Proof/WebHome
>>> http://higweb.lns.mit.edu/twikis/proof/bin/view/Proof/ProofDocs
>>>
>>> <http://higweb.lns.mit.edu/twikis/proof/bin/view/Proof/ProofDocs>
>>> 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 Wed Dec 20 2006 - 17:05:10 MET

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