Dynamic/Adaptive Systems

Cross-cut Group, NSF Workshop on Directions for Systems Research

Writeup: Andrew A. Chien, achien@cs.uiuc.edu

August 1, 1997

 

Participants:

 

Andrew A. Chien, University of Illinois at Urbana-Champaign

John Chapin, Massachusetts Institute of Technology

Peter Reiher, University of California at Los Angeles

Frank Anger, National Science Foundation

Bobby Blumofe, University of Texas at Austin

 

Charter:

The group discussed opportunities for dynamic adaptation to provide more predictable, more robust, higher performance, more composable systems. The focus of the group was on multiprogrammed systems and delivering system performance to real applications. Thus, encompassing issues that involved applications, operating systems, and hardware architecture.

 

Key conclusion:

Technology trends in hardware and software continue to reduce the hardware and runtime cost of building dynamic, adaptive systems. Concurrently, the increasing dynamic performance range across processors, networks, and storage hierarchies are dramatically increasing the potential benefits of customization. Therefore, dynamic/adaptive systems, that is systems that include significant capability for customization beyond programming in the central processing unit (e.g. in the memory system, I/O system, networking system), are a promising direction for systems research. We believe this area has the potential to deliver quantum leaps in capabilities. Dynamic/adaptive systems can include the following characteristics:

 

Motivating applications/technologies:

 

Examples where order of magnitude performance benefits are available today:

(these and other opportunities continue to increase)

 

Examples of Information Flows to support this Adaptation/Configuration:

 

 

Information Flow

Adaptation to Improve System

Application -> OS

Large scale data access patterns

Data organization/cache/prefetching

Memory/resource alloc/reservation

 

Performance requirements for subsystems

Subsystem scheduling

 

 

Security requirements (as a performance tradeoff)

Selection of encryption boundaries,

Transfer paths in the system

Application -> Hardware

Cache performance, Cache protocol control

Optimized data movement

 

Dynamic data structures

Custom prefetching and cache block size

 

Application data representation

Application specific compression in memory/disk controllers

 

Application encryption keys

Application specific encryption in memory/disk controllers

Hardware ->{OS,Application}

Application-specific memory hierarchy behavior

Data Reorganization/Page Mapping

 

Queueing and utilization for subsystems

Application-level load management

Operating system load management

Resource management and scheduling

 

Customization specific data -> application

Application-level adaptation for resource and load management, data structures, algorithm, etc.

Network -> {OS, Application}

Load/latency/schedule information (cost or available performance)

WAN resource management, Local application adaptation (e.g. prefetching)

 

 

Solutions are not just interfaces, but rather interfaces, information formats, analysis, mechanisms for adaptation, and policies for adaptation. All of these components must be melded together into systems that enable systematic solutions. Information for adaptation can be collected and passed across interfaces explicitly, or it can be derived implicitly (for example by observing previous behavior of the program).

 

To get research started in this area, the best first steps would be to:

  1. Define initial interfaces for information flow across systems
  2. Define interfaces and mechanisms for dynamic extension, enabling experimentation
  3. Produce a reference compiler, OS, HW systems that implement these interfaces and enable experimentation