Exposing speculative thread parallelism in SPEC2000
- 15 June 2005
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 142-152
- https://doi.org/10.1145/1065944.1065964
Abstract
As increasing the performance of single-threaded processors becomes increasingly difficult, consumer desktop processors are moving toward multi-core designs. One way to enhance the performance of chip multiprocessors that has received considerable attention is the use of thread-level speculation (TLS). As a case study, we manually parallelized several of the SPEC CPU2000 floating point and integer applications using TLS. The use of manual parallelization enabled us to apply techniques and programmer expertise that are beyond the current capabilities of automated parallelizers. With the experience gained from this, we provide insight into ways to aggressively apply TLS to parallelize applications for high performance. This information can help guide future advanced TLS compiler design.For each application, we discuss how and where parallelism was located within the application, the impediments to extracting this parallelism using TLS, and the code transformations that were required to overcome these impediments. We also generalize these experiences to a discussion of common hindrances to TLS parallelization, and describe methods of programming that help expose application parallelism to TLS systems. These guidelines can assist developers of uniprocessor programs to create applications that can easily port to TLS systems and yield good performance. By using manual parallelization on SPEC2000, we provide guidance on where thread-level parallelism exists in these well known benchmarks, what limits its extraction, how to reduce these limitations and what performance can be expected on these applications from a chip multiprocessor system with TLS.Keywords
This publication has 17 references indexed in Scilit:
- Design and implementation of the POWER5™ microprocessorPublished by Association for Computing Machinery (ACM) ,2004
- Using thread-level speculation to simplify manual parallelizationPublished by Association for Computing Machinery (ACM) ,2003
- Compiler optimization of scalar value communication between speculative threadsPublished by Association for Computing Machinery (ACM) ,2002
- Speculative synchronizationPublished by Association for Computing Machinery (ACM) ,2002
- Silent stores and store value localityIEEE Transactions on Computers, 2001
- MultiplexPublished by Association for Computing Machinery (ACM) ,2001
- The Stanford Hydra CMPIEEE Micro, 2000
- SUIF ExplorerPublished by Association for Computing Machinery (ACM) ,1999
- Using value prediction to increase the power of speculative execution hardwareACM Transactions on Computer Systems, 1998
- Run-time methods for parallelizing partially parallel loopsPublished by Association for Computing Machinery (ACM) ,1995