Accession Number:



Elastic A Framework for Self-Adaptive Software

Descriptive Note:

Final rept. 12 Apr-18 Nov 99

Corporate Author:


Personal Author(s):

Report Date:


Pagination or Media Count:



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 hardwaresoftware 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.

Subject Categories:

  • Computer Programming and Software

Distribution Statement: