Title :
A general compiler framework for speculative multithreaded processors
Author :
Bhowmik, Anasua ; Franklin, Manoj
Author_Institution :
Dept. of Comput. Sci. & Autom., Indian Inst. of Sci., Bangalore, India
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.
Keywords :
data flow analysis; multi-threading; processor scheduling; program compilers; task analysis; compilers; data dependence information; multithread processor; nonnumeric programs; pointer-intensive data structures; program partitioning; scheduling; task partitioning; Computational modeling; Computer science; Data analysis; Data structures; Information analysis; Multithreading; Out of order; Parallel processing; Program processors; Yarn; 65; Multithread processor; compilers.; scheduling and task partitioning;
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
DOI :
10.1109/TPDS.2004.26