Compiler support for speculative multithreading architecture with probabilistic points-to analysis

  • Authors:
  • Peng-Sheng Chen;Ming-Yu Hung;Yuan-Shin Hwang;Roy Dz-Ching Ju;Jenq Kuen Lee

  • Affiliations:
  • National Tsing Hua University, Hsinchu, Taiwan;National Tsing Hua University, Hsinchu, Taiwan;National Taiwan Ocean University, Keelung, Taiwan;Intel Corporation, Santa Clara, CA;National Tsing Hua University, Hsinchu, Taiwan

  • Venue:
  • Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Speculative multithreading (SpMT) architecture can exploit thread-level parallelism that cannot be identified statically. Speedup can be obtained by speculatively executing threads in parallel that are extracted from a sequential program. However, performance degradation might happen if the threads are highly dependent, since a recovery mechanism will be activated when a speculative thread executes incorrectly and such a recovery action usually incurs a very high penalty. Therefore, it is essential for SpMT to quantify the degree of dependences and to turn off speculation if the degree of dependences passes certain thresholds. This paper presents a technique that quantitatively computes dependences between loop iterations and such information can be used to determine if loop iterations can be executed in parallel by speculative threads. This technique can be broken into two steps. First probabilistic points-to analysis is performed to estimate the probabilities of points-to relationships in case there are pointer references in programs, and then the degree of dependences between loop iterations is computed quantitatively. Preliminary experimental results show compiler-directed thread-level speculation based on the information gathered by this technique can achieve significant performance improvement on SpMT.