GIT-CERCS-04-14
Hasnain A. Mandviwala, Nissim Harel, Umakishore Ramachandran, Kathleen Knobe,
Rate Control for Threads in Streaming Applications
A large emerging class of interactive multimedia streaming
applications can be represented as a coarse-grain, pipelined, dataflow
graph. Such applications are ideal candidates for execution on a
high-performance cluster. Each node in the graph represents a task
component of the streaming application, where each task is consuming
data from preceding stages, and producing data for subsequent stages.
The amount of data computation performed by a task, is dependent on a
multitude of design issues such as task algorithm latency, data
dependency, resource availability etc. One common characteristic of
these applications is the use of current data: A task would obtain the
latest data from preceding stages, skipping over older data if
necessary to perform its computation. Such applications when
parallelized, waste resources in terms of processing and memory on
data that is eventually dropped from the application pipeline. To
overcome this problem, we have designed and implemented a distributed
'Rate Control' algorithm that dynamically adjusts the processing
rate of each thread to meet application requirements. Optimizations
incorporating application-level knowledge such as data-dependencies
between producers and consumers, further improve performance. A
color-based people tracker application is used to explore the
performance benefits of the proposed Rate Control algorithm. We show
that Rate Control reduces the application's memory footprint by 80%
when compared to our previously published results. Optimizations
further increase the application's throughput by 226%, and reduce
latency by 40.5%.