Improving the performance of speculatively parallel applications on the Hydra CMP
Kunle Olukotun, Lance Hammond, Mark Willey · 2014
Hydra is a chip multiprocessor (CMP) with integrated support for thread-level speculation. Thread-level speculation provides a way to parallelize sequential programs without the need for data dependence analysis or synchronization. This makes it possible to parallelize applications for which static memory dependence analysis is difficult or impossible. While performance of the baseline Hydra system on applications with sig-nificant amounts of medium to large grain parallelism is good, the performance on integer applications with fine-grained parallelism can be poor. In this paper, we describe a collection of software and hardware tech-niques for improving speculation performance of the Hydra CMP. These techniques focus on reducing the overheads associated with speculation and improving the speculation behavior of the applications using code restructuring. When these techniques are applied to a set of ten integer, multimedia and floating-point bench-marks, significant performance improvements result. 1