Elastic A Framework for Self-Adaptive Software

Abstract

The Elastic program is a SBIR Phase 1 effort to develop and deploy a toolkit for constructing self adaptive software systems. The purpose in building this toolkit is to enable the automatic optimization of parallel software systems. Insertion of self adapting technology into such systems will allow them to react to changes in the execution environment in order to sustain and increase performance. The Elastic Toolkit will allow the developer to control their software in a variety of ways. First, parameters known to affect system performance can be monitored through the insertion of software sensors; as these parameters are monitored, control actions can take place to affect performance. An example of this type of control would be the automatic adjustment of communication parameters in a message passing program. Another example of the type of control that Elastic will allow is the automatic selection of algorithms and data structures, based on parameters specified by the user. The Elastic approach differs from traditional off line postprocessing techniques in that it occurs automatically at runtime. This has the advantage that an application will realize performance benefits immediately upon being moved to a new hardware/software platform; traditional platform specific tweaking becomes less important. Initial data collected as part of the Elastic Phase 1 effort showed that a synthetic application sensitive to locking can derive as much as a 13X speedup simply by choosing a different locking algorithm. While results on a real application probably will not be as dramatic as those of the synthetic application, it shows that there is potential for performance gains from simple algorithmic optimizations.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Nov 18, 1999
Accession Number
ADA370944

Entities

People

  • Dale E. Martin

Tags

Communities of Interest

  • Weapons Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Beta Testing
  • Computer Programming
  • Computer Programs
  • Computers
  • Construction
  • Control Systems
  • High Resolution
  • Instructions
  • Kernels (Operating System)
  • Lists (Data Structures)
  • Operating Systems
  • Parallel Computing
  • Parallel Processing
  • Product Development
  • Prototypes
  • Software Development

Fields of Study

  • Computer science
  • Engineering

Readers

  • Adaptive Control and Estimation with Uncertainty in Dynamic Systems.
  • Database Systems and Applications
  • Systems Analysis and Design