This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Optimally Maximizing Iteration-Level Loop Parallelism
March 2012 (vol. 23 no. 3)
pp. 564-572
Duo Liu, The Hong Kong Polytechnic Univeristy, Hong Kong and Southwest University of Science and Technology, Mianyang
Yi Wang, The Hong Kong Polytechnic Univeristy, Hong Kong
Zili Shao, The Hong Kong Polytechnic Univeristy, Hong Kong
Minyi Guo, Shanghai Jiao Tong University, Shanghai
Jingling Xue, University of New South Wales, Sydney
Loops are the main source of parallelism in many applications. This paper solves the open problem of extracting the maximal number of iterations from a loop to run parallel on chip multiprocessors. Our algorithm solves it optimally by migrating the weights of parallelism-inhibiting dependences on dependence cycles in two phases. First, we model dependence migration with retiming and formulate this classic loop parallelization into a graph optimization problem, i.e., one of finding retiming values for its nodes so that the minimum nonzero edge weight in the graph is maximized. We present our algorithm in three stages with each being built incrementally on the preceding one. Second, the optimal code for a loop is generated from the retimed graph of the loop found in the first phase. We demonstrate the effectiveness of our optimal algorithm by comparing with a number of representative nonoptimal algorithms using a set of benchmarks frequently used in prior work and a set of graphs generated by TGFF.
Index Terms:
Loop parallelization, loop transformation, retiming, data dependence graph, iteration-level parallelism.
Citation:
Duo Liu, Yi Wang, Zili Shao, Minyi Guo, Jingling Xue, "Optimally Maximizing Iteration-Level Loop Parallelism," IEEE Transactions on Parallel and Distributed Systems, vol. 23, no. 3, pp. 564-572, March 2012, doi:10.1109/TPDS.2011.171
Usage of this product signifies your acceptance of the Terms of Use.