| [807] | 1 | $Id: NEW_APP_README,v 1.2 2002/03/09 10:15:01 cooperma Exp $
|
|---|
| 2 | ------------------------------------------------------------------------------
|
|---|
| 3 | This file and NEW_APP_INSTALL describe important information if you are
|
|---|
| 4 | planning to create a new parallel Geant4 application, similarly
|
|---|
| 5 | to the examples ParN02 and ParN04.
|
|---|
| 6 | This package implements event-level parallelism for Geant4
|
|---|
| 7 | using the free TOP-C distribution. (TOP-C = Task Oriented Parallel C/C++)
|
|---|
| 8 |
|
|---|
| 9 | To parallelize an existing sequential Geant4 application, read NEW_APP_INSTALL.
|
|---|
| 10 |
|
|---|
| 11 | The design goals are:
|
|---|
| 12 | 1. No modification of the Geant4 kernel libraries.
|
|---|
| 13 | 2. Application sessions should be efficient and reproducible
|
|---|
| 14 | (independently of the number of slave processes and the
|
|---|
| 15 | order in which they are called by TOP-C)
|
|---|
| 16 | 3. Setting deterministic random seeds on each slave
|
|---|
| 17 | [ This code assumes that each slave will initialize its random state
|
|---|
| 18 | based on either the event number or a random seed selected
|
|---|
| 19 | on the master.]
|
|---|
| 20 |
|
|---|
| 21 | This assumes that you have already installed CLHEP, Geant4, and TOP-C
|
|---|
| 22 | TOP-C can be downloaded via its home page:
|
|---|
| 23 | http://www.ccs.neu.edu/home/gene/topc.html
|
|---|
| 24 |
|
|---|
| 25 | Other qualifications are:
|
|---|
| 26 | 1. It has only been tested under Linux, although it should be
|
|---|
| 27 | portable to any other UNIX supported by Geant4.
|
|---|
| 28 | 2. Since Geant4 does not currently support a uniform format for
|
|---|
| 29 | tracker hits, calorimeter hits, etc., on new applications,
|
|---|
| 30 | you may have to write marshalling code for your hits, based
|
|---|
| 31 | on the examples in ParN02 and ParN04.
|
|---|
| 32 | 3. This should support histograms as long as AnalysisManager::Step() is
|
|---|
| 33 | is trivial. However, I have not had the opportunity
|
|---|
| 34 | for careful testing. Please write to gene@ccs.neu.edu if you
|
|---|
| 35 | are including histograms, and especially if you define
|
|---|
| 36 | AnalysisManager::Step().
|
|---|
| 37 | 4. Currently, this distribution does not support:
|
|---|
| 38 | trajectory stores, n-tuples, track parallelism,
|
|---|
| 39 | interactive input commands (no macrofile)
|
|---|
| 40 | I plan to add those features according to demand.
|
|---|
| 41 | Probably: a. allowing interactive input
|
|---|
| 42 | b. track-level parallelism
|
|---|
| 43 | c. other (trajectory store, PostponeOneEvent(), ...)
|
|---|
| 44 |
|
|---|
| 45 | Some design assumptions in this ParGeant4 implementation:
|
|---|
| 46 | 1. A collectionName for a G4HitsCollection uniquely identifies the
|
|---|
| 47 | G4HitsCollection within a G4HCofThisEvent.
|
|---|