TY - GEN
T1 - Code scheduling for optimizing parallelism and data locality
AU - Yemliha, Taylan
AU - Kandemir, Mahmut
AU - Ozturk, Ozcan
AU - Kultursay, Emre
AU - Muralidhara, Sai Prashanth
N1 - Funding Information:
This research is supported in part by NSF grants CNS #0720645, CCF #0811687, OCI #821527, CCF #0702519, CNS #0720749, by a grant from Microsoft Corporation, and by a Marie Curie International Reintegration Grant within the 7th European Community Framework Programme.
PY - 2010
Y1 - 2010
N2 - As chip multiprocessors proliferate, programming support for these devices is likely to receive a lot of attention in the near future. Parallelism and data locality are two critical issues in a chip multiprocessor environment. Unfortunately, most of the published work in the literature focuses only on one of these problems, and this can prevent one from achieving the best possible performance. The main goal of this paper is to propose and evaluate a compiler-directed code parallelization scheme, which considers both parallelism and data locality at the same time. Our compiler captures the inherent parallelism and data reuse in the application code being analyzed using a novel representation called the locality-parallelism graph (LPG). Our partitioning/scheduling algorithm assigns the nodes of this graph to the processors in the architecture and schedules them for execution. We implemented this algorithm and evaluated its effectiveness using a set of benchmark codes. The results collected so far indicate that our approach improves overall execution latency significantly. In this paper, we also introduce an ILP (Integer Linear Programming) based formulation of the problem, and implement the schedule obtained by the ILP solver. The results indicate that our approach gets within 4% of the ILP solution.
AB - As chip multiprocessors proliferate, programming support for these devices is likely to receive a lot of attention in the near future. Parallelism and data locality are two critical issues in a chip multiprocessor environment. Unfortunately, most of the published work in the literature focuses only on one of these problems, and this can prevent one from achieving the best possible performance. The main goal of this paper is to propose and evaluate a compiler-directed code parallelization scheme, which considers both parallelism and data locality at the same time. Our compiler captures the inherent parallelism and data reuse in the application code being analyzed using a novel representation called the locality-parallelism graph (LPG). Our partitioning/scheduling algorithm assigns the nodes of this graph to the processors in the architecture and schedules them for execution. We implemented this algorithm and evaluated its effectiveness using a set of benchmark codes. The results collected so far indicate that our approach improves overall execution latency significantly. In this paper, we also introduce an ILP (Integer Linear Programming) based formulation of the problem, and implement the schedule obtained by the ILP solver. The results indicate that our approach gets within 4% of the ILP solution.
UR - http://www.scopus.com/inward/record.url?scp=78349281496&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=78349281496&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-15277-1_20
DO - 10.1007/978-3-642-15277-1_20
M3 - Conference contribution
AN - SCOPUS:78349281496
SN - 3642152767
SN - 9783642152764
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 204
EP - 216
BT - Euro-Par 2010 Parallel Processing - 16th International Euro-Par Conference, Proceedings
T2 - 16th International Euro-Par Conference on Parallel Processing, Euro-Par 2010
Y2 - 31 August 2010 through 3 September 2010
ER -