Componentising and Deploying a Scientific Application on the Grid Nikos Parlavantzas, Vladimir Getov Matthieu Morel, Françoise Baude, Fabrice Huet, Denis Caromel INRIA & University of Westminster
Context Component-based development (CBD) promises to simplify building and evolving grid applications. Questions What are the actual benefits and costs of CBD? How do we support developers in applying CBD (technologies/ methods)?
Case study Summary Re-engineered a complex, scientific application into a component-based Grid application using: general componentisation process Fractal/ProActive component model Showed that componentisation has: increased modifiability and reusability no adverse effect on performance
Jem3D Numerical solver for the 3D Maxwell’s equations finite volume method on tetrahedral meshes Follows typical “geometric decomposition” parallelisation Distributed object application using ProActive library
Original Jem3D architecture
Problem Jem3D suffers from limited modifiability and reusability No architectural documentation Difficult to understand and evolve system Hard-wired, hidden dependencies Limited reusability of parts Limited run-time variability
Componentisation process General, architecture-based process Object-based Component-based system system Assumptions for target component platform provided/required interfaces same interaction styles as object platform
Componentisation process
Fractal/ProActive Parallel and distributed component model targeting Grid applications (GCM prototype) Inherits features of Fractal hierarchical composition declarative architecture description extensible reflective facilities Extends Fractal with distributed components multicast interfaces configurable deployment on the Grid
Component-based Jem3D
Initial configuration in ADL Component ConsoleSteeringAgent definition = SteeringAgentImpl Component MainCollector definition = MainCollectorImpl Component Activator definition = ActivatorImpl Component Domain Interface … Component SubDomainFactory definition =FactoryImpl (SubDomainImpl) Binding This to SubDomainFactory Binding SubDomainFactory to This Binding ConsoleSteeringAgent to MainCollector Binding MainCollector to ConsoleSteeringAgent …
Qualitative evaluation Reliable architectural documentation Configuration after development time Reusable implementation of geometrical decomposition Improved modifiability and reusability
Performance evaluation 1/2 Comparison object/component-based versions on Single Cluster similar computation times longer initialisation time for component version
Performance evaluation 2/2 Comparison object/component-based versions on Grid’5000 used up to 308 processors, allocated on up to 3 clusters similar execution times
Conclusion Case study in re-engineering a scientific application into a component-based application improved modifiability and reusability no adverse effect on performance Future work add support for dynamic reconfiguration to Jem3D apply approach to diverse applications