Section: Overall Objectives
Motivation: safe and optimal autonomic management
The problem of automating computing systems administration
It lies in the difficulty of manual management in a safe or optimal way, of computing systems which become more and more complex and flexible. There is a deep need for the automation of their management, handled in a closed-loop: the system is monitored by sensors, which enable updating a self-representation of the system, upon which reconfiguration actions are decided, and in turn they are executed, with an effect on the system, that will be measured by sensors. Such dynamically reconfigurable systems, also called adaptive or autonomic computing systems, are characterized by the ability to modify, on-line, their computing structure, in reaction to conditions in their execution environment or platform.
Motivations for dynamic adaptivity are in important questions like : resource management e.g., energy, computation, memory, bandwidth, circuit area, time ; quality of service e.g., levels of precision in computing, of urgence of treatment, graceful degradation ; dependability and fault tolerance, e.g., controlling migrations in response to loss of a processor. Adaptivity concerns systems ranging from hardware to operating systems to services and applications, and in size from tiny embedded systems to large-scale data-centers, from multi-core processors to the Cloud. Their complexity is growing, in scale (software of hardware), but also in interactions between different aspects of reconfiguration.
The design of the adaptation controllers is largely done in an ad-hoc fashion, involving lots of different approaches, intuitions, and heuristics. There is an important need for well-founded models and techniques for the safe design of these control loops, which can provide designers with a support to master the complexity of designs, and with guarantees w.r.t. the correctness of the designed controllers.
Our model-based control approach
We aim to build general methodologies and tools for the model-based control of reconfigurable computing system, validated in a representative range of reconfigurable systems.
The classical approach in computer science consists of: first programming, and then verifying. We want to explore, in contrast to this, an alternative approach, more effective (easier for the designer) and safer (better guarantees), inspired by control techniques: first model behaviors of the (uncontrolled) system, and its control interfaces, at each component's level ; then specify the adaptation strategy or policy, i.e., control objectives, and possibly check controllability ; finally, derive the controller solution: automatically synthesize the controller (for classes of problems where it is possible).
Our general topic is considering computing systems as object of automatic control, which is a newly emerging scientific theme, often considering continuous models. We will be using our complementary backgrounds in reactive systems and synchronous languages, in Control Theory and in experiences in applying various control techniques to computing systems, as well as a general orientation to apply formal methods to real-world systems. We are reversing the classical view of computer science for control systems, and consider, more originally, control techniques for computing systems.
Opportunities between computer science and control theory
This new and emerging combination of computing and control can bring novel contributions both ways : adaptive computing can benefit from control techniques, which provide designers with a broad range of results, and begin to be equipped with efficient tools e.g., connected to the synchronous technology, which is essential for concrete impact on real-world systems. Research in Control Theory can benefit from computing systems, embedded or large scale, as new application domain, where theoretical results can be evaluated and transferred, and from where new interesting and relevant problems can come up.
Risks could be in e.g., the fact that such a new and mixed topic of systems and control techniques does not yet correspond to an identified scientific community, making it difficult to find people involving themselves rather than staying in their respective community of origin. But this is in direct relationship to the originality of the subject, and is compensated by the identification of concrete potentials in our ongoing work. This multi-disciplinary work takes much more exploratory time and cooperative discussion than more classical research programs, but it brings all the more original results.
Control for Computing is in its founding phase: the disadvantage is there are no comfortable inherited results and community, the advantages are in the novelty and relevance of founding a new direction.