This Article 
 Bibliographic References 
 Add to: 
A General Compiler Framework for Speculative Multithreaded Processors
August 2004 (vol. 15 no. 8)
pp. 713-724

Abstract—Speculative multithreading (SpMT) promises to be an effective mechanism for parallelizing nonnumeric programs, which tend to have irregular and pointer-intensive data structures and complex flows of control. Proper thread formation is crucial for obtaining good speedup in an SpMT system. This paper presents a compiler framework for partitioning a sequential program into multiple threads for parallel execution in an SpMT system. This framework is very general and supports speculative threads, nonspeculative threads, loop-centric threads, and out-of-order thread spawning. It is therefore useful for compiling for a wide variety of SpMT architectures. For effective partitioning of programs, the compiler uses profiling, interprocedural pointer analysis, data dependence information, and control dependence information. The compiler is implemented on the SUIF-MachSUIF platform. A simulation-based evaluation of the generated threads shows that the use of nonspeculative threads and nonloop speculative threads provides a significant increase in speedup for nonnumeric programs.

[1] A. Aho, R. Sethi, and J. Ullman, Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
[2] H. Akkary and M.A. Driscoll, A Dynamic Multithreading Processor Proc. 31st. Ann. Int'l Symp. Microarchitecture, 1998.
[3] A. Bhowmik and M. Franklin, A General Compiler Framework for Speculative Multithreading Proc. 14th Ann. ACM Symp. Parallel Algorithms and Architectures, pp. 99-108, 2002.
[4] A. Bhowmik and M. Franklin, Exploiting Data Value Prediction in Compiler Based Thread Formation Proc. Int'l Conf. High Performance Computing, 2002.
[5] A. Bhowmik and M. Franklin, A Fast Approximate Interprocedural Analysis for Speculative Multithreading Compilers Proc. Int'l Conf. Supercomputing, 2003.
[6] A. Bhowmik, A General Compiler Framework for Speculative Multithreaded Processors PhD thesis, Computer Science Dept., Univ. of Maryland, 2003.
[7] M.C. Carlisle and A. Rogers, Software Caching and Computation Migration in Olden Proc. Symp. Principles and Practice of Parallel Programming, 1995.
[8] T.-F. Chen, Supporting Highly Speculative Execution via Adaptive Branch Trees Proc. Int'l Symp. High-Performance Computer Architecture, 1998.
[9] R. Cytron, J. Ferrante, B. Rosen, M. Wegman, and F. Zadeck, Efficiently Computing Static Single Assignment Form and the Control Dependence Graph ACM Trans. Programming Languages and Systems, vol. 13, Oct. 1991.
[10] M. Franklin, Multiscalar Processors. Kluwer Academic, 2002.
[11] A.J. KleinOsowski and D.J. Lilja, MinneSPEC: A New SPEC Benchmark Workload for Simulation-Based Computer Architecture Research Computer Architecture Letters, vol. 1, June 2002.
[12] V. Krishnan and J. Torrellas, “A Chip-Multiprocessor Architecture with Speculative Multithreading,” IEEE Trans. Computers, vol. 48, no. 9, pp. 866-880, Sept. 1999.
[13] P. Marcuello and A. Gonzalez, Clustered Speculative Multithreaded Processors Proc. Int'l Conf. Supercomputing, 2001.
[14] P. Marcuello and A. González, Thread Spawning Schemes for Speculative Multithreaded Architectures Proc. Eighth Int'l Conf. High Performance Computing Architecture, 2002.
[15] P. Marcuello, J. Tubella, and A. Gonzalez, Value Prediction for Speculative Multithreaded Architectures Proc. Int'l Symp. Microarchitecture, 1998.
[16] K. Olukotun, L. Hammond, and M. Willey, Improving the Performance of Speculatively Parallel Applications on the Hydra CMP Proc. Int'l Conf. Supercomputing, 1999.
[17] M.D. Smith and G. Holloway, An Introduction to Machine SUIF and Its Portable Libraries for Analysis and Optimization ncioverview.html, 2004.
[18] J.-Y. Tsai and P.-C. Yew, "The Superthreaded Architecture: Thread Pipelining with Run-time Data Dependence Checking and Control Speculation," Proc. Int'l Conf. Parallel Architectures and Compilation Techniques, IEEE Computer Society Press, Los Alamitos, Calif., 1996, pp. 49-58.
[19] A. Uht and V. Sindagi, "Disjoint Eager Execution: An Optimal Form of Speculative Execution," Proc. 28th Int'l Symp. Microarchitecture, IEEE CS Press, Los Alamitos, Calif., 1995, pp. 313-325.
[20] T.N. Vijaykumar and G.S. Sohi, "Task Selection for a Multiscalar Processor," Proc. 31st Ann. Int'l Symp. Microarchitecture (MICRO 31), IEEE CS Press, Los Alamitos, Calif., 1998, pp. 81-92; .
[21] R. Wilson et al., SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compiler ACM SIGPLAN Notices, vol. 29, no. 12, Dec. 1996.
[22] A. Zhai, C.B. Colohan, J.G. Steffan, and T.C. Mowry, Compiler Optimization of Scalar Value Communication between Speculative Threads Proc. Int'l Conf. Architectural Support for Programming Languages and Operating Systems, 2002.
[23] B. Zheng, J.-Y. Tsai, B.Y. Zhang, T. Chen, B. Huang, J.H. Li, Y.H. Ding, J. Liang, Y. Zhen, P.-C. Yew, and C.Q. Zhu, Designing the Agassiz Compiler for Concurrent Multithreaded Architecture Proc. Workshop Languages and Compilers for Parallel Computing (LCPC), 1999.

Index Terms:
Multithread processor, scheduling and task partitioning, compilers.
Anasua Bhowmik, Manoj Franklin, "A General Compiler Framework for Speculative Multithreaded Processors," IEEE Transactions on Parallel and Distributed Systems, vol. 15, no. 8, pp. 713-724, Aug. 2004, doi:10.1109/TPDS.2004.26
Usage of this product signifies your acceptance of the Terms of Use.