180 likes | 255 Views
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).
E N D
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 componentisationprocess
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 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
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 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 … Initial configuration in ADL
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