A Case Study in Componentising a Scientific Application for the Grid Nikos Parlavantzas, Matthieu Morel, Françoise Baude, Fabrice Huet, Denis Caromel, Vladimir Getov INRIA Sophia Antipolis (F) University of Westminster (UK)
Component-based development simplifies building and evolving Grid applications. Questions What are the real costs and benefits of component-based development? How do we support Grid application developers?
Summary Re-engineered a complex, scientific application into a component-based Grid application distributed object-based system (ProActive) component-based system (Fractal/ProActive, GCM) Showed that componentisation has increased modifiability and reusability no adverse effect on performance Proposed a general, architecture-based componentisation process
Outline Background on Jem3D Jem3D overview ProActive library Jem3D architecture Approach Componentisation process Component model Componentising Jem3D Architecture Evaluation Conclusion
Jem3D Numerical solver for the 3D Maxwell’s equations finite volume method on unstructured tetrahedral meshes Follows typical “geometric decomposition” parallelisation Distributed object application using ProActive library
ProActive library Java distributed object middleware for parallel and concurrent programming Main features Active objects Asynchronous method invocation Group communications Descriptor-based deployment
Jem3D architecture
Jem3D problems 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
Outline Background on Jem3D Jem3D overview ProActive library Jem3D architecture Approach Componentisation process Component model Componentising Jem3D Architecture Evaluation Conclusion
Componentisation process General, architecture-based process Object-based system Component-based system Assumes that the target component platform allows connecting components via provided/required interfaces supports (or can be extended to support) same interaction styles as object platform
Componentisation process
Fractal/ProActive Parallel and distributed component model targeting Grid applications Inherits Fractal features hierarchical composition declarative architecture description extensible reflective facilities Extends Fractal with distributed components multicast interfaces configurable deployment on the Grid
Componentising Jem3D Recovery of original architecture dominated effort Restructured, interface-based version simplified migration to component platform
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 Improved modifiability and reusability Reliable architectural documentation Configuration after development time Reusable implementation of geometrical decomposition
Performance evaluation Comparison object- / component-based versions experiments on Grid’5000 using up to 308 processors, allocated on up to 3 clusters execution times of two versions are similar
Conclusion Case study in re-engineering a scientific application into a component-based application improved modifiability and reusability no adverse effect on performance Componentisation process Future work add support for dynamic reconfiguration to Jem3D apply approach to diverse applications