Abstract:
Current technology trends point towards both an increased heterogeneity
in hardware platforms and an increase in the mechanisms available to
applications for controlling how these platforms are utilized. These
trends motivate the design of resource-aware distributed applications,
which proactively monitor and control utilization of the underlying
platform, ensuring a desired performance level by adapting their
behavior to changing resource characteristics.
This paper describes a general framework for enabling application
adaptation on distributed platforms. The framework combines programmer
specification of alternate execution behaviors (configurations) with
automatic support for deciding when and how to adapt, relying
extensively on two components: (1) profile-based modeling of
application behavior, automatically generated by measuring application
performance in a virtual execution environment with controllable resource
consumption, and (2)application-specific continuous monitoring of current
resource characteristics. The latter detects when application
configurations need to change while the former guides the selection
of a new configuration.
We evaluate these framework components using an interactive image
visualization application. Our results demonstrate that starting from
a natural specification of alternate application behaviors and an
automatically generated performance database, our framework permits
the application to both configure itself in diverse distributed
environments and adapt itself to run-time changes in resource
characteristics so as to satisfy user preferences of output quality.