Evolutionary performance-oriented development of parallel programs by composition of components

  • Authors:
  • Nasim Mahmood;Yusheng Feng;James C. Browne

  • Affiliations:
  • University of Texas at Austin, Austin, Texas;University of Texas at Austin, Austin, Texas;University of Texas at Austin, Austin, Texas

  • Venue:
  • Proceedings of the 5th international workshop on Software and performance
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes a method for evolutionary component-based development of families of parallel programs to attain performance goals on multiple execution environments for multiple family instances and an implementation of the method. It is based upon combining component-oriented development with integration of parallel/distributed execution and parallel/distributed simulation. Each component may have multiple representations at multiple levels of realization from analytical timing models to production code. Each component is encapsulated with an associative interface specifying its properties and behaviors which enables distinguishing among different implementations (or abstractions) of the same functional behavior which may have different performance behavior. Evolutionary development evolves a program from an abstract performance model to a complete program and may continue evolution during runtime. Performance can be estimated at any stage of realization. The implementation is a compiler which composes parallel/distributed programs from components encapsulated with associative interfaces and a runtime system which supports integrated execution/simulation of parallel programs composed from components at different levels of abstraction and program evolution at runtime by component replacement. Case studies in the application of the evolutionary development method including performance results are given.