Parallel computing is becoming increasing central and mainstream,
driven both by the widespread availability of commodity SMP and
high-performance cluster platforms, as well as the growing use of
parallelism in general-purpose applications such as image recognition,
virtual reality, and media processing. In addition to performance
requirements, the latter computations impose soft real-time
constraints, necessitating em efficient, predictable parallel
resource management. Unfortunately, traditional resource
management approaches in both parallel and real-time systems are
inadequate for meeting this objective; the parallel approaches focus
primarily on improving application performance and/or system
utilization at the cost of arbitrarily delaying a given application,
while the real-time approaches are overly conservative sacrificing
system utilization in order to meet application deadlines.
In this paper, we propose a novel approach for increasing parallel
system utilization while meeting application soft real-time deadlines.
Our approach exploits the application tunability found in
several general-purpose computations. Tunability refers to an
application's ability to trade off resource requirements over time,
while maintaining a desired level of output quality. In other words,
a large allocation of resources in one stage of the computation's
lifetime may compensate, in a parameterizable manner, for a smaller
allocation in another stage. We first describe language extensions to
support tunability in the Calypso programming system, a component of
the MILAN metacomputing project, and evaluate their expressiveness
using an image processing application. We then characterize the
performance benefits of tunability, using a synthetic task system to
systematically identify its benefits and shortcomings. Our results
are very encouraging: application tunability is convenient to express,
and can significantly improve parallel system utilization for
computations with predictability requirements.