GasTurbnLab PSE Design
Objective
We describe the design of an agent-based PSE (Problem Solving
Environment) to simulate a gas turbine. The simulation will be
performed on a distributed computational grid consisting of several
machines. The simulation is carried out by splitting the problem
into smaller subproblems, each of which is solved independently
with mediator interactions for interface relaxation until the
desired global solution is obtained.
Design Requiements
The prototype uses a graphical user interface using the Iris
Explorer application builder and visualization system plus an
underlying software framework using the Grasshopper Agent System as
middleware to incorporate the computational components in a
distributed/agent computation. The prototype implementation utilizes
the TrueGrid software tool for problem specification. The
computational components consists of
ALE3D,
KIVA-3V and
PELLPACK legacy Fortran code.
Design Scenario
The Iris Explorer interface controls everything that is potentially
under user-control such as problem specification and solution
visualization. This interface also controls the launching of the
computational module which interacts with Grasshopper which,
in turn,
controls the launching and execution of the agent or server wrapped
legacy codes, and monitors the processing until the user-specified
stopping condition is reached. When the computational module
completes its task, control is returned to the Explorer interface,
where solution visualization and inspection take place.
Grasshopper's graphical monitoring tool allow for users to view the
underlying agent interactions and possible computational steering.
Design Restrictions
Software availability (see the table below) on the hardware
platforms used imposes certain restrictions on the
design. The GasTurbnLab user interface runs on Win32 platforms
and the computational grid will initially consist of SGIs and a
Solaris x86 machine cluster.
Software Infrastructure
The simulation software mainly consists of legacy Fortran code (ALE3D, KIVA-3V,
and PELLPACK) and the interface relaxation code. Each subproblem will be
solved using one of the legacy codes.
The middleware used for the distributed computations is the
Java-based Grasshopper mobile agent platform. The legacy Fortran
code is either inserted within Java wrappers as stationary agents
or is accessed via local servers (implemented with C/C++ wrappers)
by agent clients. The second option will be employed if the legacy
code proves to be too complicated to be used with JNI (the Java
Native Interface). Both options will be significantly challenging
tasks since we need to optimize memory usage, bandwidth,
performance and robustness in addition to dealing with Fortran, C
and Java code interactions.
The Iris Explorer-based interface will be built by creating the required
modules and wiring them together (via the Iris Explorer's map editor) to
create GasTurbnLab. A significant challenge
will be "fitting" our PSE design into
Explorer's dataflow steering paradigm along with its visual programming
interface. We will need to build truly self-contained, small modules with
the requisite dataflow interfaces.
Additional Notes
Since KIVA-3V and ALE3D belong to the computational component, the
Grasshopper based component (module) "controls" them. They run on
the computational grid, and are not directly accessible to
GasTurbnLab users. The Iris Explorer interface provides user access
to modules for problem specification (the TrueGrid module, other
specification software), for launching the computational component,
and for visualizing the solution via existing Iris Explorer modules
or via a MeshTV module. We assume that the Grasshopper platform is
available and running on all potential machines (the frontend
interface machines and computational grid machines) at the startup
of GasTurbnLab.
|