FRIBParallelanalysis
1.0
FrameworkforMPIParalleldataanalysisatFRIB
|
This section describes the requirements for writing a concrete application class for a parameter to parameter pipeline stage. A simple example is also given.
The application object is used to set up the proceses that make up the ranks of the MPI application. It must be derived from the frib::analysis::AbstractApplication abstract base class.
This subclass must:
In this example we will use the sample worker we showed in Sample Worker. We'll assume the header for this worker is in MyWorker.h
Let's go through this example. Numbres in the list below refer to the commented numbers in the example:
MyWorker
which implements a concrete class derived from frib::analysis::AbstractApplication We must implement four methods, one for each process role in our MPI application. The base class, upon starting MPI will invoke the appropriate method depending on the rank of the process running.argv[1]
(this is the argv[] after MPI has stripped the mpirun specific parameters from it). You can derive a subclass from frib::analysis::CMPIParameterDealer and override its getInputFile method to modify this behavior.MyWorker
and run it by calling the operator()
method.operator
method.main
as their entry point. Here we deinfe and implement that function.argv[arc-1]
e.g.