Dynaco
 | Motivations |  |
Since the concept of Grid computing has emerged, finding the right approach
for developing Grid applications is still an open question. The challenge
consists in making applications able to benefit from the huge amount of
resources without burdening the developer.
It has been observed that Grid computing environments are dynamic:
for example,
resource sharing between applications, administrative tasks and failures
lead to changes of processor and network availability even during the
execution of application.
Since this observation, it has been proposed that applications
should be able to adapt themselves dynamically to environmental changes.
This technique is dynamic adaptation.
Making applications able to modify themselves according to their actual
execution environment guarantees that they will always behave in the
best possible way given the resources allocated to them, as far as
the expertise of the developer allows it and the resource management
system is able to change resource allocation during the execution of
applications.
 | Overview |  |
Dynaco (Dynamic Adaptation for Components) is a framework that helps in
designing and implementing dynamically adaptable components. This framework
is developed by the PARIS team at
INRIA-Rennes. Dynaco implementation is based on the
Fractal component model
and its formalism.
The architecture of Dynaco components follows.
In this picture, mc boxes denote instances of the
modification controller located in the membranes of
the decider, planner and executor components.
Thanks to this, the decider, planner and executor components
can be themselves modified.
One may notice that being in the membrane of the component, the
modification controller component has a direct access to the
content (through a plain Java reference).
In Dynaco, the process of achieving dynamic adaptation is split over three
phases:
-
Upon the reception of an event that notifies of a change in certain
conditions, the component has to make a decision: should it adapt itself to
the new situation or not? To do so, it can rely on monitors in order to
observe the system. This decision phase is captured by the decider
component.
-
Once it has been decided that the component should adapt itself, the
component needs to investigate how the adaptation can be achieved. In
particular, it has to design a program that lists the tasks that should
be performed. This phase is captured by the planner component.
-
Finally, this program has to be executed. The executor component
is the virtual machine that implements the semantic of the instructions
used by the planner component. To do so, it can rely on
modification controller components which implements some primitive
instructions by giving a direct access to the content of the components.
Dynaco mainly defines interfaces between those components. In addition, it
includes a reference implementation for the
Julia implementation of Fractal.
With this implementation, only the modification controller components
are placed in the membrane of the adaptable component.
When the content of the component encapsulates a parallel code, the
executor component has to take care of the synchronization
between the parallel processes executing the applicative code and the
adaptation actions. Our solution for handling this problem lies in a
separated framework, AFPAC.
Some description of Dynaco is given in the following technical report:
«Performance and practicability of dynamic adaptation for parallel
computing: an experience feedback from Dynaco».
 | Installation & instructions |  |
For instructions on how to install Dynaco, please refer to the instructions page.
 | Contacts |  |
The following people are involved in Dynaco: Françoise André, Jérémy Buisson, Jean-Louis Pazat.
 |
Latest News |
 |
|
|
|
|