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: