Next: Coupling Scheme Visualization
Up: Orchestration Framework
Previous: Orchestration Framework
Rocman contains five types of key components: top-level iterations,
agents for physics modules, actions, schedulers, and coupling schemes.
- One of the major tasks of Rocman is to drive the simulation.
For this purpose, it provides top-level iterations including
time-marching schemes for both steady and unsteady-state calculations.
In the driver code, Rocman invokes time integration of the coupling
scheme by passing in the current time and obtaining a new time, until the
system reaches a designated time or a converged state.
- An agent serves a physics module. It represents a domain-specific
simulation (fluid, solid, or combustion) in a coupling scheme.
The most basic task of an agent is to initialize the physics module and
manage its persistent buffer data for use during intermodule interactions
on behalf of the physics module.
- Interactions between physics modules are encapsulated in actions. An action is a functional object implementing a designated
calculation. An action also defines the input data, on which it
operates and the output data produced by the calculation.
- A scheduler is a container of actions, and is responsible for
determining the orders of initialization, execution, and finalization of
its actions. A scheduler provides a procedure add_action()
to its user for registering actions.
After all the actions have been registered with a scheduler, the scheduler
can then automatically schedule these actions based on the data flow
among actions.
The automatic scheduling constructs a call graph,
which is a directed acyclic graph (DAG) for the
actions, in which each edge between a pair of actions is identified
by the data passing from one action to the other.
This automatic scheduling of actions greatly simplifies the work of an
end-developer, who now needs to be concerned about only the data movement among
actions without having to worry about the order of its execution.
Furthermore, constructing a call graph of actions exposes parallelism
among actions and potentially enables concurrent execution of all
independent actions that have their input data ready.
In the future, we plan to extend the run-time scheduling to allow concurrent
execution of actions.
- A coupling scheme is composed of a number of agents and a scheduler.
The scheduler determines the orders that must be followed for invoking
initialization, execution, and finalization of agents and actions.
The coupling scheme is the only code an end-developer of a new coupling
scheme needs to write. Rocman provides a rich set of predefined
basic actions, which can then be used as building blocks for new
coupling schemes.
Next: Coupling Scheme Visualization
Up: Orchestration Framework
Previous: Orchestration Framework
Gengbin Zheng
2005-07-07