Title: Problem Solving Environements
1Problem Solving Environements
- WebPDELab
- Online Problem Solving Environment for
Partial Differential Equations Applications a
Web Server for the PELLPACK PSE - GasTurbnLab
- Multidisciplinary Agent-based Problem Solving
Environment for the Distributed Network
Simulation of Gas Turbine Engines
2PELLPACKA Problem Solving Environment for PDE
Applications
- Sophisticated, comprehensive system for modeling
physical objects described by Partial
Differential Equations - Used by hundreds of students and faculty at
Purdue University, nationally and internationally
over the past decade - Applications include physics, liquid crystal
droplets, proton flux propagation, thermal field
analysis, fluid dynamics, semiconductors,
geophysical research, electromagnetic field
analysis, thermo-elasticity, structural analysis,
and many other scientific and engineering areas
3PELLPACK The Layered Structure
4PELLPACK The Complexity of System Installation
5WebPDELabOnline PELLPACK Problem Solving
Environment
- Complete Internet-based support for sequential
parallel PDE computing from any Java-enabled
browser - Backed by 16 CPU Intel cluster connected through
an Intel Express510t switch with Intel Ether
Express Pro 100NICs at 100MB - Users define, solve and analyze PDE problems
supported by an interactive GUI for problem
definition visualization, with full access to
the PELLPACK libraries of PDE solvers - Implemented using VNC remote display for the
PELLPACK X-windows programs compiled on an i86pc
SunOS 5.6 machine
6(No Transcript)
7WebPDELab Usage Statistics for Server Access
8WebPDELab Implementation of an Online PDE PSE
WebPDELab Manager
USER
Java enabled browser
CGI
VNC viewer
HTTP
WebPDELab - VNC interface
Server Security Wrapper
Two 16 CPU i86pc Clusters
VNC Server
PELLPACK Security Wrapper
PELLPACK
9WebPDELab The Network Scenario
10Gas Turbine Engine Simulation
11GasTurbnLab
- Multi-disciplinary Problem Solving Environment
- Geometric decomposition of target simulation
object defines a network of PDE problems - Specialized PDE solvers (legacy code) model the
physics on each geometric domain - Domain interfaces are handled by mediators
- Goal generalize framework templates for an
agent-based distributed network implementation
of an MPSE
12GasTurbnLab The Network Scenario
13GasTurbnLabThe Agent-based Infrastructure
ModelingAgent
Graphical User Interface
Simulation ControlAgent
VisualizerAgent
Iris Explorer Platform
Grasshopper Platform
LegacyAgent
LegacyAgent
LegacyAgent
LegacyAgent
LegacyAgent
LegacyAgent
ResourceAgent
DatabaseAgent
MediatorAgent
MediatorAgent
MediatorAgent
MediatorAgent
MediatorAgent
Computational Agents
Service Agents
14GasTurbnLabPrototype Results from the
VisualizerAgent
15GasTurbnLabFramework for Implementing the
LegacyAgent
Fortran Legacy Code
Java data object to/from network simulation contr
oller
Java Agent Wrapper
C data
Fortran --- C I/O Transfer
C Wrapper
across JNI interface
Java-C data transfer for mediated data
Fortran-C data transfer for mediated data
16GasTurbnLabTemplate for the Java Agent Wrapper
- // TEMPLATE Java Agent Wrapper for C-wrapped
Legacy Code - public class LegacyAgent extends MobileAgent
implements ILegacyAgent - int startup, ret, render
- SerialData sData
- // Load library containing legacy code, C
wrapper, legacy-wrapper data interface - static System.loadLibrary(LegacyWrapper)
) - public native int LegacyWrapper(int startup,
int render, ltlegacy specific parametersgt) - // IO iteration Java-To-C interface
- public SerialData requestConfirmation( int
domain, SerialData sd, int Render, - ltlegacy specific parametersgt) throws
agentException - int startup1 ret1 Render0
- if (startup gt 1) copyData (sd)
// create Java data object at every IO iteration - retLegacyWrapper(startup,Render, ltlegacy
specific parametersgt) // call C wrapper - dp while (ret1) startup
-
- public void CopyData( SerialData sd)
ltlegacy code specificgt // C data -gt Java
object
17GasTurbnLabC Wrapper Template for the Legacy Code
- // TEMPLATE C Wrapper for Legacy Code
- struct int wrapperSleep int legacySleep
// execution control - struct ltlegacy code specificgt
// legacy mediator data - static void CopyData(jenv, this, start, type,
render) // C struct to Java object at return
to agent - ltlegacy code specificgt
// Java object to C struct on
return from agent - JNIEXPORT jint JNICALL Java_LegacyAgent_LegacyWrap
per - (JNIEnv env, jobject this, jint startup, jint
render, ltlegacy code specificgt) - int i, ret
- thread_t thr
- if (startup 1)
- if ( ret thr_create( NULL, 0, thread,
NULL, THR_DETACHED, thr)) ! 0) // start
legacy thread - exit(1)
- else CopyData(jenv, this JavaToC )
// copy mediated data from Java to C - control.wrapperSleep1 control.legacySleep0
// wrapper sleeps while legacy code
executes - while (control.wrapperSleep) (sleep(1))
- CopyData (jenv, this, startup, CToJava,
render) // copy mediated data from C to
Java and
18GasTurbnLabTemplate for the Data Transfer
Fortran C
- // TEMPLATE C code for transfer of I/O data from
Fortran to C - extern struct int wrapperSleep int
legacySleep // execution control - extern struct ltlegacy code specificgt
// legacy mediator data - / called from inside Fortran legacy code at I/O
iteration location - where mediated data is needed /
- void legacyDataIO (ltlegacy code specificgt)
-
- CopyFortran2C (ltlegacy code specificgt)
// copy Fortran data to C struct - control.legacySleep1 control.wrapperSleep0
// wake wrapper and - while (control.legacySleep) sleep(1)
// resume at return from agent - CopyC2Fortran (ltlegacy code specificgt)
// copy C struct to Fortran
19GasTurbnLabTemplate for Legacy Code Modifications
- ?From a Fortran executable
- The Fortran main is changed to a subroutine
with arguments passed as parameters - This subroutine is started as a thread from the
C wrapper - A call to the I/O data transfer routine is
inserted into the Fortran iteration loop - The Fortran code, C routine for I/O transfer, and
the C wrapper are compiled together as a library
loaded into the Java agent - ?To a C-wrapped Legacy Code Library
20GasTurbnLabAgents and the MPSE Simulation
- Completed AleAgent for simulating rotor and
stator domains, KivaAgent for simulating
combustor domain two MediatorAgents for
interface data interpolation of rotor-stator and
stator-combustor - Completed SCA to control total simulation
process for any number and type of domains
VisualizerAgent to view intermediate and final
results - Verified mediated stator-rotor simulation,
mediated stator-combustor simulation