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%.