Participants
Brian Ensink
Joel Stanley
Joyce Chau
Vikram Adve
The research described below is a component of the
POEMS/MASC project on
Model-Based Adaptive Software Control, which also includes other researchers from
5 other institutions.
Papers
 |
Publications for this work are available
here.
|
The Goal
To provide a programming framework (a programming model, language,
compiler, and runtime environment) that enables programmers to design,
develop, and optimize the performance of adaptive distributed applications.
The Problem
Many distributed applications have to meet their performance or quality-of-service
(QoS) goals in environments where available resources change constantly.
This behavior will be common in several fundamentally important classes of applications
such as distributed multimedia codes, mobile
applications, and scientific applications on the computational grid.
The general approach that must be followed by all such applications is to use runtime
adaptation in order to achieve their performance or QoS goals under such
dynamic conditions. There are several major limitations in the approaches
currently used to develop adaptive, distributed codes:
- Although there are a number of libraries or middleware systems for
supporting adaptation, there is no common framework in which to reason
about and design adaptation techniques for a distributed
application. Each individual application has had to invent (or
reinvent) the strategies and programming techniques used for adaptation
(currently this happens almost exclusively for research).
- The adaptation behavior in current applications is usually programmed in
ad hoc code that is directly incorporated into the base application,
resulting in systems that are complex to develop, maintain, modify, and
debug
- There is no automated support for performance prediction and program
instrumentation, both of which are crucial for guiding adaptation at
runtime.
A powerful approach to addressing these limitations would be
to provide first class language and compiler support for adaptive distributed
applications. This should include a
formal programming model for designing adaptive applications and reasoning
about the correctness of adaptation, language and compiler support for
simplifying the development effort and complexity of adaptive codes, and
compiler support for automatic (or semi-automatic) performance prediction and
measurement support.
The Program Control Language (PCL)
We are designing a language, the Program Control Language (PCL) -that
we believe can address the requirements above. The language and
associated programming model provide several key capabilities:
- A formal framework based on task graphs that can be used to reason about
the effect of adaptation operations on program behavior, for a broad class
of adaptations use in many different distributed applications.
- Programming language extensions that can be
used to describe adaptive behavior of a distributed application separately
from the underlying distributed computation, and can express
adaptation operations as simple operations on a task graph.
- Coordination criteria to describe how adaptation operations on
different processes must be coordinated relative to each other and relative
to the execution of the application;
these criteria can be enforced by the
compiler automatically, so that the programmer need not write any explicit
communication or synchronization to perform a distributed adaptation!
- Correctness criteria to describe when a particular adaptation is legal
to perform relative to the execution of the underlying process;
these criteria can be specified by the programmer and enforced by the
compiler.
- Compiler techniques to support performance monitoring and semi-automatic
performance
prediction for adaptive codes.
We are working with a few distributed codes as driving examples, (and we
are now beginning to develop additional applications in-house):
- A parallel stochastic optimization code (ATR) developed in Stephen J.
Wright's group at Argonne Lab. and the University of Wisconsin.
- A distributed video tracking code developed in the MONET
research group at the University of Illinois.
- Smaller examples to experiment with the key ideas in the framework.
We are also collaborating with the
POEMS research group to develop
performance modeling techniques for adaptive codes, and to integrate these
with the compiler techniques being developed in our group. The ATR and
MOL codes are the two driving applications being used in that project.
|