The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.04 - July-Aug. (2012 vol.32)
pp: 19-31
Feng Li , INRIA
Antoniu Pop , INRIA
Albert Cohen , INRIA
ABSTRACT
This article presents a general algorithm for transforming sequential imperative programs into parallel data-flow programs. The algorithm operates on a program dependence graph in static-single-assignment form, extracting task, pipeline, and data parallelism from arbitrary control flow, and coarsening its granularity using a generalized form of typed fusion. A prototype based on GNU Compiler Collection (GCC) is applied to the automatic parallelization of recursive C programs.
INDEX TERMS
Instruction sets, Parallel processing, Pipeline processing, Synchronization, Radiation detectors, Sequential analysis, SSA form, Instruction sets, Parallel processing, Pipeline processing, Synchronization, Radiation detectors, Sequential analysis, sequential imperative programs, automatic parallelization, data-flow model, loop fusion, program dependence graph
CITATION
Feng Li, Antoniu Pop, Albert Cohen, "Automatic Extraction of Coarse-Grained Data-Flow Threads from Imperative Programs", IEEE Micro, vol.32, no. 4, pp. 19-31, July-Aug. 2012, doi:10.1109/MM.2012.49
REFERENCES
1. K. Stavrou et al., "TFlux: A Portable Platform for Data-Driven Multithreading on Commodity Multicore Systems," Proc. 37th Int'l Conf. Parallel Processing (ICPP 08), IEEE CS, 2008, pp. 25-34.
2. J. Planas et al., "Hierarchical Task-Based Programming with StarSs," Int'l J. High-Performance Computing Architecture, vol. 23, no. 3, 2009, pp. 284-299.
3. A. Pop, S. Pop, and J. Sjödin, "Automatic Streamization in GCC," GCC Developer's Summit, 2009, pp. 91-104, http://www.gccsummit.org/2009gcc09-proceedings.pdf .
4. A. Pop and A. Cohen, "A Stream-Computing Extension to OpenMP," Proc. 4th Int'l Conf. High-Performance and Embedded Architectures and Compilers (HiPEAC 11), ACM, 2011, pp. 5-14.
5. R. Giorgi, Z. Popovic, and N. Puzovic, "DTA-C: A Decoupled Multi-threaded Architecture for CMP Systems," Proc. 19th Int'l Symp. Computer Architecture and High-Performance Computing (SBAC-PAD 07), IEEE CS, 2007, pp. 263-270.
6. A. Portero, Z. Yu, and R. Giorgi, "T-Star (T*): An x86-64 ISA Extension to Support Thread Execution on Many Cores," Proc. 7th Int'l Summer School Advanced Computer Architecture and Compilation for High-Performance and Embedded Systems (HiPEAC ACACES), Academia Press, 2011, pp. 277-280.
7. R. Cytron, J. Ferrante, and V. Sarkar, "Experiences Using Control Dependence in PTRAN," Proc. 2nd Workshop Languages and Compilers for Parallel Computing, Pitman Publishing, 1990, pp. 186-212.
8. R. Cytron et al., "Efficiently Computing Static Single Assignment Form and the Control Dependence Graph," ACM Trans. Programming Languages and Systems, Oct. 1991, pp. 451-490.
9. J. Ferrante, K.J. Ottenstein, and J.D. Warren, "The Program Dependence Graph and Its Use in Optimization," ACM Trans. Programming Languages and Systems, July 1987, pp. 319-349.
10. K. Kennedy and J.R. Allen, Optimizing Compilers for Modern Architectures: A Dependence-Based Approach, Morgan Kaufmann, 2002.
11. K. Kennedy and K.S. McKinley, Typed Fusion with Applications to Parallel and Sequential Code Generation, tech. report, Computer Science Dept., Rice Univ., 1993.
7 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool