Section: New Results
Middleware for computational grids
Parallel CORBA objects and components
The concept of (distributed) parallel object/component appears to be a key technology for programming (distributed) numerical simulation systems. 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 aspects. It is a generic extension to CORBA, so that it can be added to any implementation of CORBA. It considers that the parallelism of an object is mainly an implementation issue: it should not be visible to users, but in some specific occasions. Hence, the OMG IDL is no longer modified. GridCCM is the evolution of PaCO++ into the component model of CORBA.
The work carried out in 2006 was related to the improvement of PaCO++ and with the beginning of the implementation of GridCCM , a parallel CORBA component model.
Future work will mainly concern the development of GridCCM and its validation within two ANR projects. The support of PaCO++ will be continued, as it is a foundation of GridCCM .
Dynamic software component models
Software component models are succeeding in handling another level of the software complexity by dealing with its architecture. However, a current limitation is that only static architectures can be handled with. 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.
We have proposed to use the concept of abstract collection and of request delivery policy pattern to support the master-worker design pattern in component-based application. From an application point of view, the master-worker behavior is well captured. The model is valid for ADL-based models like CCM and Fractal , as well as for models without ADL like CCA . We have achieved a first integration of the DIET middleware system as an advanced request delivery policy. Two sequential applications coming from two Inria projects (VISAGE and VISTA ) have been parallelized with respect to our model. We have merged our master-worker model with our data-sharing model between components.
Two extensions of this work are considered. First, we will perform benchmarking of the model with respect to synthetic benchmarks and real applications. Second, we plan to use the Dynaco adaptive framework to deal with the management of a dynamic set of workers.
Application deployment on computational grids
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. We proposed a generic deployment model that aims to automatically deploy complex applications on grids. The core of the model is a Generic Application Description model (GADe) that enables to decouple most of the deployment tool from a specific application description. We have also proposed a description model for grid networks that provides a synthetic view of the network topology.
Year 2006 was mainly devoted to the stabilization of the prototype named Adage . A new feature of redeployment has been added. The outputs of the deployment of an application can been used in the future deployment operation either to replay the same deployment, or to add elements to a running application. For example, it enables to add more workers to a running component-based, master-worker application. We have also started to study the support of PadicoTM .
Our current deployment model is restricted to static applications. Hence, we have started to revisite the model to support dynamic applications.
The next major goal is to proposed a model for dynamic applications. We also plan to finish the support of PadicoTM .
Since grid architectures are also 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. Based on our model for the adaptation of parallel component, on our previous experience, and on a collaboration with the University of Pisa  , we have defined a generic model of dynamic adaptation and used it to define frameworks.
We have separated the framework in two parts: a generic framework for dynamic adaptation of components, and a specific implementation for synchronizing parallel SPMD codes for adaptations.
The generic framework (Dynaco ) implements the generic adaptation framework. It is a Fractal component-based implementation.
The specific parallel synchronization tool has been redesigned from the previous implementation to separate the parallel specific part from the generic framework.
The Dynaco framework has been used in the COA Inria Cooperative Research Action (ARC) to demonstrate its use for computational steering of a simulation application.
In the next future, we will study the impact of dynamic adaptation on the design of resource allocators and batch schedulers. Use of adaptive components will also be studied for dependable grid computing within the context of the SafeScale Project.
Dynamic Load Balancing
Dynamic load balancing algorithms have proven to be better than static load balancing algorithms. However, in many applications one algorithm cannot be the best one during the whole life of the application, especially in multi-phase applications. We are studying the dynamic adaptation of load-balancing algorithms.
We first studied the basic characteristics of dynamic load balancing algorithms on Grids. We divided algorithms into two categories: centralized and totally distributed algorithms. We also studied some evaluation function to be able to choose at runtime between two algorithms.
We have implemented a prototype for changing dynamically a load balancing algorithm using the AMPI software and the Charm++ library which includes some load balancing algorithms.
In the next future, we will study the integration within the Dynaco framework