TY - GEN
T1 - FlexBulk
T2 - 38th Annual International Symposium on Computer Architecture, ISCA'11
AU - Agarwal, Rishi
AU - Torrellas, Josep
PY - 2011
Y1 - 2011
N2 - Blocked-execution multiprocessor architectures continuously run atomic blocks of instructions-also called Chunks. Such architectures can boost both performance and software productivity, and enable unique compiler optimization opportunities. Unfortunately, they are handicapped in that, if they use large chunks to minimize chunk-commit overhead and to enable more compiler optimization, inter-thread data conflicts may lead to frequent chunk squashes. In this paper, we present automatic techniques to form chunks in these architectures to minimize the cycles lost to squashes. We start by characterizing the operations that frequently cause squashes. We call them Squash Hazards. We then propose squash-removing algorithms tailored to these Squash Hazards. We also describe a software framework called FlexBulk that profiles the code and transforms it following these algorithms. We evaluate FlexBulk on 16-threaded PARSEC and SPLASH-2 codes running on a simulated machine. The results show that, with 17,000-instruction chunks, FlexBulk eliminates, on average, over 90% of the squash cycles in the applications. As a result, compared to a baseline execution with 2,000-instruction chunks as in previous work, the applications run on average 1.43× faster.
AB - Blocked-execution multiprocessor architectures continuously run atomic blocks of instructions-also called Chunks. Such architectures can boost both performance and software productivity, and enable unique compiler optimization opportunities. Unfortunately, they are handicapped in that, if they use large chunks to minimize chunk-commit overhead and to enable more compiler optimization, inter-thread data conflicts may lead to frequent chunk squashes. In this paper, we present automatic techniques to form chunks in these architectures to minimize the cycles lost to squashes. We start by characterizing the operations that frequently cause squashes. We call them Squash Hazards. We then propose squash-removing algorithms tailored to these Squash Hazards. We also describe a software framework called FlexBulk that profiles the code and transforms it following these algorithms. We evaluate FlexBulk on 16-threaded PARSEC and SPLASH-2 codes running on a simulated machine. The results show that, with 17,000-instruction chunks, FlexBulk eliminates, on average, over 90% of the squash cycles in the applications. As a result, compared to a baseline execution with 2,000-instruction chunks as in previous work, the applications run on average 1.43× faster.
KW - Atomic block execution
KW - Speculation
KW - Thread squash
UR - https://www.scopus.com/pages/publications/80052537898
UR - https://www.scopus.com/pages/publications/80052537898#tab=citedBy
U2 - 10.1145/2000064.2000070
DO - 10.1145/2000064.2000070
M3 - Conference contribution
AN - SCOPUS:80052537898
SN - 9781450304726
T3 - Proceedings - International Symposium on Computer Architecture
SP - 33
EP - 44
BT - Proceeding of the 38th Annual International Symposium on Computer Architecture, ISCA'11
Y2 - 4 June 2011 through 8 June 2011
ER -