The Adaptive Applications Project

Home Teaching Research Publications People

 

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:

  1. 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).
  2. 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
  3. 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:

  1. 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.
  2. 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.
  3. 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!
  4. 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.
  5. 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):

  1. A parallel stochastic optimization code (ATR) developed in Stephen J. Wright's group at Argonne Lab. and the University of Wisconsin.
  2. A distributed video tracking code developed in the MONET research group at the University of Illinois.
  3. 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.

 

Home Teaching Research Publications People