ParGeant4 Home Page

by Gene Cooperman (gene@ccs.neu.edu)

This distribution implements event-level parallelism for Geant4 using the free TOP-C distribution. (TOP-C = Task Oriented Parallel C/C++)

The CERN web site contains a good introduction to ParGeant4 (Parallel Geant4). (There is also a local copy.)

Overview slides of ParGeant4 and Geant4 hooks for parallelism (in postscript).

You will find the ParGeant4 extension of Geant4 in the examples/extended/parallel directory in the distributions of Geant4 4.1 and higher. The latest version of Geant4 is available for download here.

That directory includes ParN02 and ParN04, which are example parallelizations of examples/novice/Example{N01,N02}. The directory also includes information about how to similarly parallelize your own Geant4 applications.

The design goals are:
1.  No modification of the Geant4 kernel libraries.
2.  Application sessions should be efficient and reproducible
     (independently of the number of slave processes and the
      order in which they are called by TOP-C)
3.  Setting deterministic random seeds on each slave
    [ This code assumes that each slave will initialize its random state
      based on either the event number or a random seed selected
      on the master.]

This assumes that you have already installed CLHEP, Geant4, and TOP-C
  TOP-C can be downloaded via its home page:
                          http://www.ccs.neu.edu/home/gene/topc.html

Other qualifications are:
1.  `topc-config' is already in your path.
2.  It has only been tested under Linux, although it should be
       portable to any other UNIX supported by Geant4.
3.  This should support histograms as long as AnalysisManager::Step() is
        is trivial.  However, I have not had the opportunity
        for careful testing.  Please write to gene@ccs.neu.edu if you
        are including histograms, and especially if you define
         AnalysisManager::Step().
4.  Currently, this distribution does not support:
      trajectory stores, n-tuples, track parallelism,
      interactive input commands (no macrofile)
    I plan to add those features according to demand.
       Probably:  a. allowing interactive input
                  b. track-level parallelism
                  c. other (trajectory store, PostponeOneEvent(), ...)

ParGeant4 has now been demonstrated to run over the Computational Grid using a new TOP-C communication layer, with support for the Grid, based on Ampic. There is a paper reporting on this in postscript.


(This material is based in part upon work supported by the National Science Foundation under Grants No. 9732330 and 9872114. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.)

Gene Cooperman
College of Computer Science, 215CN
Northeastern University
Boston, MA 02115
e-mail: gene@ccs.neu.edu
Phone: (617) 373-8686
Fax: (617) 373-5121