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. |
---|