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. Parallel block vectors provide block execution profiles per concurrency phase (e.g., the block execution profile of all serial regions of a program). Our initial paper describes PBV profiles in more detail. We have also developed a tool, called Harmony, to collect these profiles within the LLVM compiler framework.
This material is based upon work supported by the National Science Foundation under Grant No. 1117135. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.