Kanemitsu Ootsu, Takashi Yokota, and Takanobu Baba
multi-core processor, thread-level parallelism, thread partitioning, speculative multithreading, program hot path
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