Flextream: Adaptive Compilation of Streaming Applications for Heterogeneous Architectures

Amir Hormati, Yoonseo Choi, Manjunath Kudlur, Rodric Rabbah, Trevor Mudge and Scott Mahlke

Increasing demand for performance and efficiency has driven thecomputer industry toward multicore systems. These systems have becomethe industry standard in almost all segments of the computer marketfrom high-end servers to handheld devices. In order toefficiently use these systems, an extensive amount of research andindustry support has been devoted to developing explicitly parallelprogramming paradigms, such as streaming models, and new compilertechniques. One important challenge that arises in multicore systems is theability to dynamically adapt a running application to a targetarchitecture in the face of changes in resource availability (e.g.,number of cores, available memory or bandwidth). In this paper, wefocus on the increasingly important area of streaming computing andintroduce Flextream as a flexible compilation framework that candynamically adapt applications to the changing characteristics of theunderlying architecture. We believe this is an important contributionas software developers grapple with the details of parallelism in arapidly changing architecture landscape. Flextream achieves its goalsthrough a combination of static compilation and dynamic adaptationtechniques. Our results indicates that Flextream's approach can achieve high-performance resource allocations that are within an average of 9% compared the optimal solutions with low overhead for a wide range of streaming applications.

Back to Program