DocumentCode
3305394
Title
Alchemist: A Transparent Dependence Distance Profiling Infrastructure
Author
Zhang, Xiangyu ; Navabi, Armand ; Jagannathan, Suresh
Author_Institution
Dept. of Comput. Sci., Purdue Univ., West Lafayette, IN
fYear
2009
fDate
22-25 March 2009
Firstpage
47
Lastpage
58
Abstract
Effectively migrating sequential applications to take advantage of parallelism available on multicore platforms is a well-recognized challenge. This paper addresses important aspects of this issue by proposing a novel profiling technique to automatically detect available concurrency in C programs. The profiler, called Alchemist, operates completely transparently to applications, and identifies constructs at various levels of granularity (e.g., loops, procedures, and conditional statements) as candidates for asynchronous execution. Various dependences including read-after-write (RAW), write-after-read (WAR), and write-after-write (WAW), are detected between a construct and its continuation, the execution following the completion of the construct. The time-ordered distance between program points forming a dependence gives a measure of the effectiveness of parallelizing that construct, as well as identifying the transformations necessary to facilitate such parallelization. Using the notion of post-dominance, our profiling algorithm builds an execution index tree at run-time. This tree is used to differentiate among multiple instances of the same static construct, and leads to improved accuracy in the computed profile, useful to better identify constructs that are amenable to parallelization. Performance results indicate that the profiles generated by Alchemist pinpoint strong candidates for parallelization, and can help significantly ease the burden of application migration to multicore environments.
Keywords
C language; concurrency control; multiprocessing systems; parallel programming; program diagnostics; trees (mathematics); Alchemist profiler; C program; application parallelization; asynchronous execution; automatic concurrency detection; multicore platform; program transformation; read-after-write dependence; run-time execution index tree; sequential application migration; static construct; transparent dependence distance profiling algorithm; write-after-read dependence; write-after-write dependence; Computer science; Concurrency control; Concurrent computing; Data mining; Frequency estimation; Multicore processing; Parallel processing; Programming profession; Runtime; Yarn; execution indexing; parallelization; profiling; program dependence;
fLanguage
English
Publisher
ieee
Conference_Titel
Code Generation and Optimization, 2009. CGO 2009. International Symposium on
Conference_Location
Seattle, WA
Print_ISBN
978-0-7695-3576-0
Type
conf
DOI
10.1109/CGO.2009.15
Filename
4907650
Link To Document