Compiler and hardware support for reducing the synchronization of speculative threads

Antonia Zhai, J. Gregory Steffan, Christopher B. Colohan, Todd C. Mowry

Research output: Contribution to journalArticle

14 Scopus citations

Abstract

Thread-level speculation (TLS) allows us to automatically parallelize general-purpose programs by supporting parallel execution of threads that might not actually be independent. In this article, we focus on one important limitation of program performance under TLS, which stalls as a result of synchronizing and forwarding scalar values between speculative threads that would otherwise cause frequent data dependences and, hence, failed speculation. Using SPECint benchmarks that have been automatically transformed by our compiler to exploit TLS, we present, evaluate in detail, and compare both compiler and hardware techniques for improving the communication of scalar values. We find that through our dataflow algorithms for three increasingly aggressive instruction scheduling techniques, the compiler can drastically reduce the critical forwarding path introduced by the synchronization and forwarding of scalar values. We also show that hardware techniques for reducing synchronization can be complementary to compiler scheduling, but that the additional performance benefits are minimal and are generally not worth the cost.

Original languageEnglish (US)
JournalTransactions on Architecture and Code Optimization
Volume5
Issue number1
DOIs
StatePublished - May 1 2008

Keywords

  • Automatic parallelization
  • Chip-multiprocessing
  • Instruction scheduling
  • Thread-level speculation

Fingerprint Dive into the research topics of 'Compiler and hardware support for reducing the synchronization of speculative threads'. Together they form a unique fingerprint.

Cite this