About the interface
G4MPI is a native interface with MPI libraries. The directory contains a Geant4 UI library and a couple of parallelized examples. Using this interface, users applications can be parllelized with different MPI compliant libraries, such as LAM/MPI, MPICH2, OpenMPI, and so on.
System Requirements:
- Platform
- Linux (32bit/64bit)
- MacOS (Tiger)
- MPI implementation
- LAM/MPI (7.1.3)
http://www.lam-mpi.org/
- MPICH2 (1.0.6p1)
http://www.mcs.anl.gov/research/projects/mpich2/
- Open MPI (1.2.4)
http://www.open-mpi.org/
- Optional
- ROOT for histogramming/analysis
G4MPI UI library
G4MPI UI library is provided in the "mpi_interface" directory. Start with building the G4MPI UI library according to the instruction in the directory.
How to make parallel applications:
- An example of a main program:
Notes about session shell:
LAM/MPI users can use "G4tcsh" as an interactive session shell.
For other users (Open MPI/MPICH2), plese use G4csh (default).
How to use:
MPI runtime rnvironment
1. Make hosts/cluster configuration of your MPI environment.
2. Launch MPI runtime environment, typically executing
lamboot (LAM) / mpdboot (MPICH2).
How to run
For example,
Instead, "mpirun" command is more convenient for LAM users.
MPI G4UI commands:
G4UI commands handling the G4MPI interface are placed in /mpi/.
Notes:
While "/run/beamOn" is executed in foreground, the "/mpi/beamOn" command invokes beam-on in background, so you can input UI commands even while event processing.
The original "/control/execute" and "/run/beamOn" are overwritten with "/mpi/execute" and "/mpi/.beamOn" commands, customized for the MPI interface.
Examples
There are a couple of examples for Geant4 MPI applications.
In some cases, you need to set some additional environment variables
for running examples:
- G4LEVELGAMMADATA : directory path for the data of
"low energy electromagnetic processes".
For running ROOT applications,
- ROOTSYS : root path of the ROOT package
- LD_LIBRARY_PATH : add ROOT library path, such as $(ROOTSYS)/lib/root
exMPI01
A simple application.
- Geometry : chamber / calorimeter
- Primary : particle gun (200 MeV electron as default)
- Physics List : standard EM
- Particles are transported in a geometry without any scoring.
- Learn how to parallelize your G4 session.
exMPI02 (ROOT application)
An example of dosimetry in a water phantom.
- Geometry : water phantom
- Primary : particle gun (200 MeV proton as default)
- Physics List : QGSP_BIC
- Score dose distribution in a water phantom.
- Learn how to paralleize your applications.
- Create a ROOT file containing histograms in each node.
- treat multiple outputs properly:
each slave node generate a ROOT file, whose file name should
be different from each other.