Program Execution Path-Based Speculative Thread Partitioning
Kanemitsu Ootsu, Hirohito Ogawa, Takashi Yokota, Takanobu Baba
Nowadays, multi-core processor, a multi processor system on a single chip, is widely available, and the processing capacity of computer system is highly extended. However, parallelization of computer program at the thread level, namely multithreading, is required in order to shorten the execution time of (in other words, to speed up) the single program by sufficiently utilizing the power of the multi-core processor.
In this paper, we propose a method of thread partitioning that partitions a single program code into parallel threads. The method intends for programs which is hardly sped up by conventional multithreading techniques, and the method is based on a speculative thread execution model. In the method, a program code is partitioned into threads based on the frequencies of the program execution path (the execution sequence of the program basic blocks). Partitioning of program code along the most frequently executed path and no data dependencies between partitioned threads allow each thread to execute in parallel and the program can be sped up.
For the purpose of clarifing the performance achieved by our proposed method, the method is applied to the practical program code, that is difficult to speedup by utilizing the parallelism at loop level, and the cycle-level processor simulation is performed.