Exploring Thread-Level Speculation in Software: The Effects of Memory Access Tracking Granularity

作者: Spiros Papadimitriou , Todd C. Mowry

DOI:

关键词:

摘要: Speculative execution is often the only way to overcome dataflow-imposed limitations and exploit parallelism when dependences can be discovered at run-time. It also facilitates automatic parallelization of programs that exhibit complicated memory access patterns, which make complete compile-time dependence analysis either impossible or extremely complicated. A number approaches for coarse-grained data control speculation have been proposed, mainly in hardware. few software-only methods exist, but they usually rely on certain assumptions about flow patterns. We investigate possibility supporting software, without making any such assumptions. The main motivation success a software DSM systems. Our approach utilizes virtual hardware track operations. goal provide necessary support through library, instead specialized found low overhead mechanism accesses small granularity necessary, thus unsuitable. In this paper we explore various overheads and, particular, those related tracking.

参考文章(17)
S. Gopal, T.N. Vijaykumar, J.E. Smith, G.S. Sohi, Speculative versioning cache high-performance computer architecture. pp. 195- 205 ,(1998) , 10.1109/HPCA.1998.650559
Devabhaktuni Srikrishna, SoftSpec : software-based speculative parallelism via stride prediction Massachusetts Institute of Technology. ,(1999)
Sandhya Dwarkadas, Alan L. Cox, Willy Zwaenepoel, Pete Keleher, TreadMarks: distributed shared memory on standard workstations and operating systems usenix winter technical conference. pp. 10- 10 ,(1994)
Jenn-Yuan Tsai, Pen-Chung Yew, The superthreaded architecture: thread pipelining with run-time data dependence checking and control speculation international conference on parallel architectures and compilation techniques. pp. 35- 46 ,(1996) , 10.1109/PACT.1996.552553
Ye Zhang, L. Rauchwerger, J. Torrellas, Hardware for speculative run-time parallelization in distributed shared-memory multiprocessors high-performance computer architecture. pp. 162- 173 ,(1998) , 10.1109/HPCA.1998.650556
J.G. Steffan, T.C. Mowry, The potential for using thread-level data speculation to facilitate automatic parallelization high-performance computer architecture. pp. 2- 13 ,(1998) , 10.1109/HPCA.1998.650541
Lamport, How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs IEEE Transactions on Computers. ,vol. 28, pp. 690- 691 ,(1979) , 10.1109/TC.1979.1675439
Lawrence Rauchwerger, David Padua, The LRPD test Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation - PLDI '95. ,vol. 30, pp. 218- 232 ,(1995) , 10.1145/207110.207148
Ioannis Schoinas, Babak Falsafi, Alvin R. Lebeck, Steven K. Reinhardt, James R. Larus, David A. Wood, Fine-grain access control for distributed shared memory architectural support for programming languages and operating systems. ,vol. 29, pp. 297- 306 ,(1994) , 10.1145/195473.195575
J. Greggory Steffan, Christopher B. Colohan, Antonia Zhai, Todd C. Mowry, A scalable approach to thread-level speculation international symposium on computer architecture. ,vol. 28, pp. 1- 12 ,(2000) , 10.1145/339647.339650