On Advanced Scientific Understanding, Model Componentisation

Download Report

Transcript On Advanced Scientific Understanding, Model Componentisation

Service-enabling Legacy Applications for the
GENIE Project
Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko
Krznarić and Eleftheria Katsiri
Motivation
Engineer GENIE to inform research on component
coupling frameworks:
 Analysis of a complicated piece of code such as
GENIE
 Extraction of interface and model coupling
semantics
Modern component architectures indicate the need
for highly engineered and autonomous components
Create methodology to advance the quality of
functional code
1
Goals




A flexible coupling framework where components
can be individually developed and coupled together
The coupling needs to be correct, intelligent and
without undue programming effort
Come up with sophisticated ways to couple physical
entities in order to optimally produce experimental
results
A system of the size and complexity of GENIE
requires a supporting semantic framework
2
Previous Work





Separation of the code into pieces - Layered representation
of the application
Wrapping GENIE as ICENI binary component
Delivery of Web-based System (portal) to allow a virtual
organisation of environmental scientists to create and
manage simulations at a high-level over a Condor pool
Implementation of database management system to allow
scientists to share, access and visualise data produced by
simulation runs
Investigation of model-coupling and validation semantics
3
GENIE model framework
3D atmosphere
Atmospheric
CO2
3D ice sheets
Land
biogeochemistry
2D sea ice
Ocean
biogeochemisty
3D ocean
2D land surface
Ocean sediments
4
Currently in GENIE
genie.F is a glorified metafile containing if-then-else
statements
 Fortran routines act as “wrappers”
 Life cycle phases scattered
 Module communication through shared memory
 Hard-coded semantics (e.g. grid interpolations, time
steps)

5
Extended Abstract Component (Grid) Model
for GENIE
 Model Specific Interfaces
 Abstract Interface - Plugin adapters
 Web Service Wrapper Layer
 Communication through SOAP/MPI
 Metadata for Composability
6
Componentising GENIE
 Determining I/Os
• SIDL (Scientific Interface Description Language)
- Common way of describing components
 Linking Fortran to Java
• Babel Interoperability Tool
• Shared Libraries
7
Babel Interoperability Tool
8
Steps to Service Enable GENIE (1/4)
 1. Wrap and test modules individually
 2. Test module communication through an equivalent
to genie.F Java client & compare results
 3. Create Abstract Component Interfaces
9
Steps to Service Enable GENIE (2/4)
 4. Launch components as Web Services and modify Java
client to now call Web Services instead
10
Steps to Service Enable GENIE (3/4)
5.Use workflow engine to orchestrate the Abstract Components
11
Steps to Service Enable GENIE (4/4)
6. Advance into a Grid environment so as to incorporate Co-ordination
Specification, Dynamic Abstract Generator, Resource Allocation and Optimisation
12
An example as proof of concept
13
Achieved..
Web Service Client
Embm
Bean
Embm Atmosphere
Surflux
GoldSeaice
Bean
Surflux
Bean
Goldstein Seaice
Land
Bean
Land
Goldstein
Bean
Goldstein Ocean
14
Conclusions
 Provided service-based computational
Grid execution architecture for GENIE
framework
 Scaled engineering steps
 Proved that functional legacy code can be
distributed and run as Web Services
15