Performance Estimation of Speculative Multithreading through Whole Program Path

Kanemitsu Ootsu, Takashi Yokota, and Takanobu Baba

Keywords

multicore processor, threadlevel parallelism, thread partitioning, speculative multithreading, program hot path

Abstract

Recently, multi-core processors have become widespread, and the performance of multi-core processors has increased. Thread level parallelism must be used to speed up a single program by making effective use of the potentially high performance of multi-core processors. However, it is difficult to extract parallelism from non-numerical programs to speed up execution, because non-numerical programs have complex program structures and complicated data dependencies. However, programs generally have only a few paths that are actually executed, even if the program has a complex control structure. Based on this property, we have developed the hot-path based thread partitioning technique, which parallelizes non-numerical program codes at thread level along the most frequently executed path and can speed up programs with poor loop-level parallelism. Since the hot-path based thread partitioning technique assumes that non-numerical programs tend to have poor loop-level parallelism, this technique has a problem in that no loops are parallelized even if the loop can be parallelized and speedup can actually be attained by loop-level parallel execution. Therefore, the speedup of program code including loops is insufficient. Thus, in the present paper, we improve the hot-path based thread partitioning technique to allow the loops on the hot path to be parallelized by applying loop sectioning. Furthermore, we preliminarily evaluate the performance of an improved hot-path based thread partitioning technique by accurate cycle-based simulation using practical program codes. The evaluation result shows that the performance can be improved by the improved hot-path based thread partitioning technique, as compared to the original hot-path based thread partitioning technique.

Important Links:



Go Back