Language and compiler support for adaptive applications

Research output: Contribution to conferencePaperpeer-review

4 Scopus citations

Abstract

There exist many application classes for which the users have significant flexibility in the quality of output they desire. At the same time, there are other constraints, such as the need for real-time response or limit on the consumption of certain resources, which are more crucial. This paper provides a combined language/compiler and runtime solution for supporting adaptive execution of these applications, i.e., to allow them to achieve the best precision while still meeting the specified constraint at runtime. The key idea in our language extensions is to have the programmers specify adaptation parameters, i.e, the parameters whose values can be varied within a certain range. A program analysis algorithm states the execution time of an application component as a function of the values of the adaptation parameters and other runtime constants. These constants are determined by initial runs of the application in the target environment. We integrate this work with our previous work on supporting coarse-grained pipelined parallelism, and thus support adaptive execution for data-intensive applications in a distributed environment. Our experimental results on three applications have shown that our combined compile-time/runtime model can predict the execution times quite well, and therefore, support adaptation to meet a variety of constraints.

Original languageEnglish (US)
Pages277-288
Number of pages12
DOIs
StatePublished - 2004
Externally publishedYes
EventIEEE/ACM SC2004 Conference - Bridging Communities - Pittsburgh, PA, United States
Duration: Nov 6 2004Nov 12 2004

Conference

ConferenceIEEE/ACM SC2004 Conference - Bridging Communities
CountryUnited States
CityPittsburgh, PA
Period11/6/0411/12/04

ASJC Scopus subject areas

  • Engineering(all)

Cite this