Title
Program parallelization using synchronized pipelining
Abstract
While there are well-understood methods for detecting loops whose iterations are independent and parallelizing them, there are comparatively fewer proposals that support parallel execution of a sequence of loops or nested loops in the case where such loops have dependencies among them. This paper introduces a refined notion of independence, called eventual independence, that in its simplest form considers two loops, say loop1 and loop2, and captures the idea that for every i there exists k such that the i+1-th iteration of loop2 is independent from the j-th iteration of loop1, for all j≥k. Eventual independence provides the foundation of a semantics-preserving program transformation, called synchronized pipelining, that makes execution of consecutive or nested loops parallel, relying on a minimal number of synchronization events to ensure semantics preservation. The practical benefits of synchronized pipelining are demonstrated through experimental results on common algorithms such as sorting and Fourier transforms.
Year
DOI
Venue
2009
10.1007/978-3-642-12592-8_13
logic based program synthesis and transformation
Keywords
Field
DocType
nested loops parallel,1-th iteration,parallel execution,nested loop,eventual independence,program parallelization,common algorithm,fewer proposal,j-th iteration,minimal number,nested loops,fourier transform
Pipeline (computing),Synchronization,Separation logic,Program transformation,Software pipelining,Computer science,Induction variable,Algorithm,Theoretical computer science,Sorting,Nested loop join
Conference
Volume
ISSN
ISBN
6037
0302-9743
3-642-12591-3
Citations 
PageRank 
References 
0
0.34
12
Authors
3
Name
Order
Citations
PageRank
Leonardo Scandolo100.34
César Kunz216710.81
Manuel V. Hermenegildo32692182.60