[LLVMdev] Publication at ISCA 12- Harmony: Collection and Analysis of Parallel Block Vectors

Melanie Kambadur melanie at cs.columbia.edu
Thu Sep 6 11:31:31 PDT 2012


Hi all,

Please check out our recent ISCA publication that introduces a new
performance profiling technique for analyzing parallel programs along with
an open source tool to collect the profiles.  The tool is written into
LLVM's LTO. Could someone please add the paper to http://llvm.org/pubs/ ?

Here is the citation:
Harmony: Collection and Analysis of Parallel Block
Vectors<http://arcade.cs.columbia.edu/harmony-isca12.pdf>,
M. Kambadur, K. Tang, M. A. Kim, In *International Symposium on Computer
Architecture (ISCA), 2012.*

Our project page with the downloadable tool:
http://arcade.cs.columbia.edu/harmony

The paper 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.

Thanks,
Melanie Kambadur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120906/e49af9f2/attachment.html>


More information about the llvm-dev mailing list