[Gate-users] Geant4 10.0 MT and GATE

Marc Verderi verderi at in2p3.fr
Mon Dec 2 14:37:46 CET 2013

Dear Ian,

     Just a few words to let you know about some feature of the Geant4 
10.0 MT, and to partly answer your question. Geant4 10.0, which includes 
this MT capability, will be released in a few days. The MT scheme 
adopted is to process events (in Geant4 sense) in parallel, each thread 
dealing with a set of events, and sharing geometry and physics tables 
among the threads, to minimize the memory footprint.

     GATE will certainly need an adaptation. This is of course critical, 
but requires only a few lines of code. The G4RunManager as to be 
replaced by the G4MTRunManager. Users' actions (primary generator 
action, stepping action, event action, and run action if needed) become 
thread local actions : one instance of each of these actions is 
instantiated per thread. Sensitive detectors and fields become also 
thread local, and have to be instantiated in a new method of the 
detector construction : ConstructSDandField() which is executed once for 
each thread. In this way, events can be processed independently, in 
parallel. The overall mechanics is controlled by a master thread, the 
one launched at the application startup, and which then spawn the slave 
threads at event loop start.

     What will be needed also is an examination of the "static" data 
members in the GATE classes : some of them would be static as known in 
the master and slave threads, some others will be static but with a 
thread local scope and will need some adaptation. Helper classes in the 
Geant4 MT version exist to help doing an easy transformation of, for 
example, a singleton to a thread-local singleton.
     All these transformations are compatible with a sequential 
processing (the up-to-now processing), and a MT-compliant code can be 
compiled as is for a sequential processing (provided the G4RunManager 
has been chosen).

     For information, tests performed on a 61 cores Intel Xeon Phi board 
allowed to go up to 244 threads (maximum possible number on this 
platform) for a single realistic application !

     Hoping I just whet your appetite ! ;)

Best regards,

On 11/26/2013 03:07 PM, Porter Ian (RBV) NHS Christie Tr wrote:
> Hello All,
>    My understanding is that the next version of Geant4 (v10.0) will
> support multi-threading and will be released to production soon.  We are
> keen to move over to this to avoid using multiple instances of GATE (1
> per CPU core) on our cluster.  Can anyone tell me whether GATE will
> require an upgrade in order to work with Geant4 MT?  If so, is there a
> timescale for the release of the new version?  The last newsletter
> mentions GATE v7.0 with GPU support, which was due out by now but has
> not yet appeared.  Is this being rewritten with a view to supporting
> Geant4 10.0 MT?
> Many Thanks,
>    -- Ian.
> To download our 20:20 Vision strategy, please visit http://www.christie.nhs.uk/2020
> This e-mail and any files transmitted with it are confidential and solely for the use of the intended recipient.
> If you have received this e-mail in error you should not disseminate, distribute or copy it.
> Please notify the sender immediately and delete this e-mail from your system.
> _______________________________________________
> Gate-users mailing list
> Gate-users at lists.opengatecollaboration.org
> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users

More information about the Gate-users mailing list