Project : paris
Section: New Results
Middleware for computational grids
The PadicoTM framework
Keywords : Communication framework, CORBA, MPI.
Participants : Mathieu Jan, Christian Pérez, Thierry Priol.
Computational grids exhibit parallel and distributed aspects: it is a set of various and widely distributed computing resources, which are often parallel. Therefore, a grid usually contains various networking technologies — from system area network through wide area network. PadicoTM is a communication framework that decouples application middleware systems from the actual networking environment. Hence, applications become able to transparently and efficiently utilize any kind of communication middleware (either parallel or distributed-based) on any network that they are deployed on. Moreover, to support advanced grid programming models, PadicoTM is able to concurrently support several communication middleware systems.
With the employment of Alexandre Denis in the RUNTIME project, PadicoTM is an activity shared between the RUNTIME and PARIS projects. With respect to the PARIS project, the year 2005 has been devoted to the continuation of the stabilization of the port of JXTA-C on top of PadicoTM. The port has been updated as long with the evolution of JXTA-C as well as the Apache Portable Runtime (APR), which is used by JXTA-C.
Parallel CORBA objects and components
Keywords : Grid, distributed object, distributed component, parallelism, CORBA.
Participants : Hinde-Lilia Bouziane, Christian Pérez, Thierry Priol, André Ribes.
The concept of (distributed) parallel object/component appears to be a key technology for programming (distributed) numerical simulation. It joins the well known object/component oriented model with a parallel execution model. Hence, a data distributed across a parallel object/component can be sent and/or received almost like a regular piece of data while taking advantage of (possible) multiple communication flows between the parallel sender and receiver. The Paris Project-Team has been working on such a topic for several years. PaCO was the first attempt to extend CORBA with parallelism. PaCO++ is a second attempt that supersedes PaCO in several points. It targets a portable extension to CORBA so that it can be added to any implementation of CORBA. It advocates the parallelism of an object is mainly an implementation issue: it should not be visible to users but in some special occasions. Hence, the OmgIdl is no longer modified. GridCCM is the evolution of PaCO++ into the component model of CORBA.
The work carried out in 2005 was related to the improvement of PaCO++. First, a more stable release has been produced. Second, the RedSym library from the Scalaplix project has been integrated into PaCO++. Third, a port of the core of the Salome platform on top of PaCO++ has been studied.
The ACI GRID HydroGrid project has produced a version of an application simulating a coupling between a transport and a flow codes through the used of PaCO++.
PaCO++ has reached a stable point which validates its purpose.
Dynamic software component models
Keywords : Grid, software component, dynamic behavior, CORBA Component Model (CCM).
Participants : Hinde-Lilia Bouziane, Christian Pérez, Thierry Priol.
Software component models are succeeding in handling another level of the software complexity by dealing with its architecture. However, a current limitation is to only handle static architecture. Dynamic behaviors, like the well-known master-worker pattern, are not expressible. It is an important lack as many applications require such a feature. Our objective is to study how to capture such dynamic behavior within a component model.
Started with a very simple and well-known dynamic behavior, the master-worker design pattern, we have introduced the concept of collection of components and of communication between a component and such a collection. Hence, from an application point of view, the master-worker behavior is well captured. This architecture is captured in an abstract ADL which currently is an ADL enriched with this notion of collection. An abstract ADL is transformed into a concrete ADL by selecting an actual mechanism of request transport from the master to the worker. This choice is being formalized as the application of a template to the abstract ADL.
The proposed solution has been applied to two software components, CORBA Component Model and Fractal. A first hand-coded prototype has convinced us of the feasibility of the approach.
Three activities are envisioned. First, we are working on integrating existing request framework, like DIET or XtremWeb, in our component model. Second, we will continue to increase the level of dynamic behavior support, by for example, supporting a dynamic set of workers. Third, the links between the deployment model and such a dynamic component model have to be studied.
Application deployment on computational grids
Participants : Sebastien Lacour, Christian Pérez, Thierry Priol.
The deployment of parallel component-based applications is a critical issue in the utilization of computational Grids. It consists in selecting a number of nodes and in launching the application on them. A first issue was to accurately describe the resources. We have proposed a description model for grid networks that provides a synthetic view of the network topology. This is complementary to previous works that succeeds in describing properly the compute nodes (CPU speed, memory size, operating system, etc), but generally fails to describe the network topology and its characteristics in a simple, synthetic and complete way.
In 2005, we have proposed specifications for describing MPI applications as well as GridCCM applications and a generic application description model.
The specification GridCCM applications consists in an extension to the CCM specification which allows an implementation to be a parallel application. For example, if the parallel component has based on MPI, its description follows the MPI description. It was a motivation for specifying such an MPI description as well as the need to be able to deploy plain MPI applications.
The generic application description model (GADe) enables to decouple most of the deployment tool from a specific application description. Translating a specific application description into the generic description is a simple task. Then, developing new planning algorithms and re-using them for different application types becomes much easier as they rely on the generic description. Moreover, the generic description model allows to deploy applications based on a programming model combining several models, as parallel components encompass component-based and parallel programming models for instance.
The development of Adage has been continued. Adage is currently able to deploy MPICH-P4, MPICH-G2, standard CORBA Component, GridCCM components and JXTA based applications on Grids managed by the Globus Toolkit 2 or by SSH/SCP.
Our goal is the deployment of GridCCM based applications that make use of PadicoTM. Not only, we have to face the complexity of deployment parallel component but, there are two levels of components to handle: CORBA component as well as PadicoTM component. Another objective is to support dynamic applications.
Adaptive components
Participants : Françoise André, Jérémy Buisson, Jean-Louis Pazat.
Since grid architectures are also known to be highly dynamic, using resources efficiently on such architectures is a challenging problem. Software must be able to dynamically react to the changes of the underlying execution environment. In order to help developers to create reactive software for the grid, we are investigating a model for the adaptation of parallel components.
We have defined a parallel self-adaptable component as a parallel component which is able to change its behavior according to the changes of the environment. Such a component includes an adaptation policy, a set of available implementations, called behaviors, and a set of reactions. Reactions are the means by which the component adapts itself. It can be for example the replacement of the active implementation, the tuning of some parameters, the redistribution of arrays. In order to adapt dynamically a parallel software component, we need to coordinate all its processes before the execution of a reaction. We have formally defined and implemented an agreement algorithm to find the next point where an adaptation can be achieved.
Based on our model for the adaptation of parallel component, on our previous experience and on a collaboration with University of Pisa [27], we have defined a generic model of dynamic adaptation.
We have started the development of AFPAC, an implementation of the proposed model in the case of parallel components. Experiments have been conducted that consist in dynamically changing the number of processes of the NAS Parallel Benchmark MPI-FFT standard code. Results have been published in [39].
AFPAC has also been used by students in the context of a student project at INSA-Rennes that aimed at providing a resource manager for adaptive components.
In order to ease the integration of AFPAC into components, we have investigated aspect-oriented programming [58]. The specific TACO aspect weaver has been developed in the context of a Master student project. Aspects for integrating AFPAC have been written in the context of a Master summer internship funded by ARC COA. This aspect-oriented approach has been experimented with the Gadget-2 cosmological N-body/smoothed particle hydrodynamics simulation code.