Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
POSH: A TLS Compiler that Exploits Program Structure

Wei Liu, James Tuck, Luís Ceze, Wonsun Ahn, Karin Strauss, José Renau, and Josep Torrellas

Abstract

As multi-core architectures with Thread-Level Speculation (TLS) are becoming better understood, it is important to focus on TLS compilation. TLS compilers are interesting in that, while they do not need to fully prove the independence of concurrent tasks, they make choices of where and when to generate speculative tasks that are crucial to overall TLS performance.

This paper presents POSH, a new, fully automated TLS compiler built on top of gcc. POSH is based on two design decisions. First, to partition the code into tasks, it leverages the code structures created by the programmer, namely subroutines and loops. Second, it uses a simple profiling pass to discard ineffective tasks. With the code generated by POSH, a simulated TLS chip multiprocessor with 4 superscalar cores delivers an average speedup of 1.30 for the SPECint 2000 applications. Moreover, an estimated 26% of this speedup is a result of the implicit data prefetching provided by squashed tasks.

Details

Publication typeProceedings
Published inPPoPP 2006 (Principles and Practice of Parallel Programming)
PublisherAssociation for Computing Machinery, Inc.
> Publications > POSH: A TLS Compiler that Exploits Program Structure