Thanks Patrice for your reply. I am interested in the first
implementation where each node would work separately and in parallel. I
am really a novice to MPI but would appreciate your advice/suggestions.
Did you install Geant along with other GATE software for each of the
many nodes that you are using. Also, did you have to make changes to
the Geant software or any other software for their MPI installation.
How easy or difficult was the installation. I have currently GATE
installed on Fedora core on my laptop.<br>
Thanks. Would greatly appreciate your reply.<br>
Vandana<br><br><div><span class="gmail_quote">On 10/26/05, <b class="gmail_sendername">patrice descourt</b> <<a href="mailto:patrice.descourt@univ-brest.fr">patrice.descourt@univ-brest.fr</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dear Vandana<br><br>I currently implement MPI in GEANT4 for GATE.<br><br>I implement two ways:<br><br>1) each node works separately and in parallel at the event level in<br>GEANT4, writing their own output files (ROOT, ASCII or Whatever)
<br><br>2) using TOP-C above MPI to apply master-slaves paradigm : the master<br>sends an event to compute to a slave which returns the G4HCofThisEvent<br>of it. This is more cumbersome, not really at marshaling level , but
<br>when you unmarshal the G4HCofThisEvent of this event because<br>GateCrystalHit has a GateVolumeID which is a vector container of<br>GateVolumeSelector which contains a pointer to a GateVObjectInserter<br>which in turn is used in GatePulseAdder to retrieve the
<br>GateVObjectInserter of each GateVolumeSelector. This is to check if the<br>pulses are in the same physical volume to add their energies.<br>Unfortunately the pointer information is lost when transmitting from a<br>slave to the master: each GateObjectInserter of a GateVolumeselector
<br>from a GateVolumeID contained in a GateCrystalHit which has been<br>calculated by the slave is created ex nihilo on the master so all these<br>Inserters created from the data transmitted by slaves correspond to<br>physical volumes on the master but not with the right pointer which is
<br>stored in the GateObjectInserterStore to access the volumes in the<br>geometry.<br><br>So I currently try to reassign correctly the pointer to the<br>GateVObjectInserter from the data transfered by the slave to the right
<br>pointer in the GateObjectInserterStore of the master so that the<br>geometrical informations on the hits computed on the slave is rightfully<br>mapped on the master<br><br>Best Regards<br>P.Descourt<br><br>My idea is to use the name of the GateVObjectInserter stored in the
<br>parent class GateNamedObject to identify the right geometrical volume.<br><br>I would nevertheless warmly welcome any suggestions.<br><br>U650 INSERM,<br>Laboratoire de Traitement d'Information Medicale (LaTIM),<br>Equipe 'Quantification en Tomographie d'Emission',
<br>CHU Morvan,<br>5 avenue Foch,<br>29609 Brest, France<br>_______________________________________________<br>gate-users mailing list<br><a href="mailto:gate-users@lphe1pet1.epfl.ch">gate-users@lphe1pet1.epfl.ch</a><br><a href="http://lphe1pet1.epfl.ch/mailman/listinfo/gate-users">
http://lphe1pet1.epfl.ch/mailman/listinfo/gate-users</a><br></blockquote></div><br>