Abstract

The current trend in processor architecture is a move toward multi-core processors.Parallel execution will be required to improve program performance continuously.Traditional automatic program parallelization typically works for regular loops in codes of scientific applications,but in general can not find enough parallelism from irregular programs,especially those that have many pointer references and function calls.This paper presents a method to identifying possibly parallel regions using average execution time of regions and data dependence profiling.The main contributions are as follows:(1) automatically identify possibly parallel regions(PPR) at various levels of granularity.The parallel regions are not only traditional fine-grained parallel regions(inter loop iterations),but also coarse-grained parallel regions(inter loop bodies and function call sites).It selects a set of potentially beneficial regions from all regions of a program using average execution time of regions;(2) automatically identify number and types of inter-region dependences,and find out program variables that cause these inter-region dependences.In this paper,the authors use Behavior Oriented Parallelism(BOP) to verify the correctness of program transformation.According to the analyses results,the authors parallelize four SPEC2006 test cases.And the parallelized programs show 300% and 260% speedup on Intel and AMD multi-core machines respectively.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call