HWRF
trunk@4391
|
Object structure for describing MPI programs. More...
Object structure for describing MPI programs.
Do not load this module directly. It is meant to be loaded only by the produtil.run module.
This module handles execution of MPI programs, and execution of groups of non-MPI programs through an MPI interface (which requires all sorts of tricks). This module is also the interface to the various produtil.mpi_impl.* modules that generate the shell command to run MPI programs. This module is built on top of the produtil.prog module and uses it to run the MPI-launching program for your local cluster (mpiexec, mpirun, poe, etc.)
In addition, this module contains code to simplify adding new MPI implementations to the produtil.mpi_impl subpackage. High-level code, such as the HWRF scripts, use the produtil.run module to generate object trees of MPIRanksBase objects. The produtil.mpi_impl subpackages then implement an mpirunner function that turns those into a produtil.prog.Runner to be directly executed. The MPIRanksBase object, and its subclasses, implement a few utilites to automate that for you:
For MPI implementations that require a command file, see the produtil.mpi_impl.mpi_impl_base CMDFGen class to have the produtil.prog module automatically write the command file before executing the program. The produtil.mpi_impl.mpirun_lsf shows an example of how to use it.
See the produtil.run module for full documentation.
Classes | |
class | ComplexProgInput |
Raised when something that cannot be expressed as a pure MPI rank is given as a pure MPI rank. More... | |
class | InputsNotStrings |
Raised when the validation scripts were expecting string arguments or string executable names, but something else was found. More... | |
class | MPIProgSyntaxError |
Base class of syntax errors in MPI program specifications. More... | |
class | MPIRank |
Represents a single MPI rank. More... | |
class | MPIRanksBase |
This is the abstract superclass of all classes that represent one or more MPI ranks, including MPI ranks that are actually serial programs. More... | |
class | MPIRanksMPMD |
Represents a group of MPI programs, each of which have some number of ranks assigned. More... | |
class | MPIRanksSPMD |
Represents one MPI program duplicated across many ranks. More... | |
class | MPISerial |
Represents a single rank of an MPI program that is actually running a serial program. More... | |
class | NotMPIProg |
Raised when an MPI program was expected but something else was given. More... | |
class | NotSerialProg |
Raised when a serial program was expected, but something else was given. More... | |
Variables | |
list | __all__ = [] |
Ensure nothing is loaded by "from produtil.mpiprog import *". | |