• 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