Title :
A Practical Approach to Exploiting Coarse-Grained Pipeline Parallelism in C Programs
Author :
Thies, William ; Chandrasekhar, Vikram ; Amarasinghe, Saman
Author_Institution :
Massachusetts Inst. of Technol., Cambridge
Abstract :
The emergence of multicore processors has heightened the need for effective parallel programming practices. In addition to writing new parallel programs, the next generation of programmers will be faced with the overwhelming task of migrating decades´ worth of legacy C code into a parallel representation. Addressing this problem requires a toolset of parallel programming primitives that can broadly apply to both new and existing programs. While tools such as threads and OpenMP allow programmers to express task and data parallelism, support for pipeline parallelism is distinctly lacking. In this paper, we offer a new and pragmatic approach to leveraging coarse-grained pipeline parallelism in C programs. We target the domain of streaming applications, such as audio, video, and digital signal processing, which exhibit regular flows of data. To exploit pipeline parallelism, we equip the programmer with a simple set of annotations (indicating pipeline boundaries) and a dynamic analysis that tracks all communication across those boundaries. Our analysis outputs a stream graph of the application as well as a set of macros for parallelizing the program and communicating the data needed. We apply our methodology to six case studies, including MPEG-2 decoding, MP3 decoding, GMTI radar processing, and three SPEC benchmarks. Our analysis extracts a useful block diagram for each application, and the parallelized versions offer a 2.78x mean speedup on a 4-core machine.
Keywords :
C language; audio coding; decoding; parallel programming; radar signal processing; software tools; video coding; C programs; GMTI radar processing; MP3 decoding; MPEG-2 decoding; OpenMP tool; SPEC benchmarks; audio signal processing; coarse-grained pipeline parallelism; data parallelism; digital signal processing; legacy C code; multicore processors; parallel programming; parallel representation; pragmatic approach; stream graph; streaming applications; threads tool; video signal processing; Decoding; Digital signal processing; Multicore processing; Parallel programming; Pipelines; Programming profession; Radar tracking; Streaming media; Writing; Yarn;
Conference_Titel :
Microarchitecture, 2007. MICRO 2007. 40th Annual IEEE/ACM International Symposium on
Conference_Location :
Chicago, IL
Print_ISBN :
978-0-7695-3047-5
Electronic_ISBN :
1072-4451
DOI :
10.1109/MICRO.2007.38