• DocumentCode
    2582836
  • Title

    Harmony: Collection and analysis of parallel block vectors

  • Author

    Kambadur, Melanie ; Tang, Kui ; Kim, Martha A.

  • Author_Institution
    Columbia Univ., New York, NY, USA
  • fYear
    2012
  • fDate
    9-13 June 2012
  • Firstpage
    452
  • Lastpage
    463
  • Abstract
    Efficient execution of well-parallelized applications is central to performance in the multicore era. Program analysis tools support the hardware and software sides of this effort by exposing relevant features of multithreaded applications. This paper describes parallel block vectors, which uncover previously unseen characteristics of parallel programs. Parallel block vectors provide block execution profiles per concurrency phase (e.g., the block execution profile of all serial regions of a program). This information provides a direct and fine-grained mapping between an application´s runtime parallel phases and the static code that makes up those phases. This paper also demonstrates how to collect parallel block vectors with minimal application perturbation using Harmony. Harmony is an instrumentation pass for the LLVM compiler that introduces just 16-21% overhead on average across eight Parsec benchmarks. We apply parallel block vectors to uncover several novel insights about parallel applications with direct consequences for architectural design. First, that the serial and parallel phases of execution used in Amdahl´s Law are often composed of many of the same basic blocks. Second, that program features, such as instruction mix, vary based on the degree of parallelism, with serial phases in particular displaying different instruction mixes from the program as a whole. Third, that dynamic execution frequencies do not necessarily correlate with a block´s parallelism.
  • Keywords
    concurrency control; multi-threading; program compilers; program diagnostics; software architecture; software tools; Harmony; LLVM compiler; Parsec benchmarks; architectural design; block execution profiles; concurrency phase; direct mapping; dynamic execution frequencies; fine-grained mapping; hardware support; instruction mix; minimal application perturbation; multithreaded applications; parallel block vector analysis; parallel block vector collection; parallel block vectors; parallel programs; program analysis tools; runtime parallel phases; serial execution phases; software support; static code; Instruction sets; Instruments; Parallel processing; Radiation detectors; Registers; Runtime; Vectors;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Architecture (ISCA), 2012 39th Annual International Symposium on
  • Conference_Location
    Portland, OR
  • ISSN
    1063-6897
  • Print_ISBN
    978-1-4673-0475-7
  • Electronic_ISBN
    1063-6897
  • Type

    conf

  • DOI
    10.1109/ISCA.2012.6237039
  • Filename
    6237039