Exploring of Speculative Thread-level Parallelism from Subroutine

Yaobin Wang · Journal of Chinese Computer Systems · 2009

Exploiting speculative thread-level parallelism on multi-core architecture to speedup serial applications,which are traditionally difficult to be parallelized manually or automatically,has been a feasible technique. The performance of TLS,however,mostly depends on how to partition threads. It has been known that speculating only on loops does not yield sufficient parallelism,but speculative subroutines execution as a means to increase the available parallelism has been proved more difficult than loops. In this paper we present a design criterion for speculative execution subroutine. By using ProRV ProFun,two dynamic profiling tools extended from Simplescalar,we analyzed the potential performance available from speculative subroutine execution of SPEC CPU2000. Our experiment show that 1) Subroutine without a return value take about 40% of total running time,and subroutine with a sparse integer return value takes about 10% of total running time and about 70% of return values can be predicted correctly. 2) The simple last-value scheme is good enough for return value prediction. 3) Explicit synchronization is necessary because of the common existence of data dependent between subroutine structure and its following code.

Read the paper · More papers on PaperTik