Automatic Extraction of Coarse-Grained Data-Flow Threads from Imperative Programs
Feng Li, Antoniu Pop, Albert Cohen · IEEE Micro · 2012
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.