Thread-Level Speculation (TLS) has shown great promise as an automatic parallelization technique to achieve high level performance by partitioning a sequential program into threads, which are expected to be optimistically executed in parallel. In this paper, we propose a load-balancing approach to save energy using dynamic voltage scaling. By scaling the voltage of processors running short threads, energy consumption on these processors can be reduced while keeping a similar speedup of the overall system. Two voltage selection strategies have been investigated. With the assistance of some profiling tools, we propose a static voltage selection algorithm that can minimize energy consumption without degrading the parallelism provided by the pure TLS. The other dynamic algorithm selects voltage for each thread with prediction during the execution. Our experimental results show that its energy consumption is reduced to 78.8% and execution time is stretched to 1.07 times, on average, of the pure TLS in a 16-core CMP processor.
['Peng Li', 'Song Guo']
Energy Minimization on Thread-Level Speculation in Multicore Systems