Liu Bin, Zhao Yin-Liang, Han Bo, Li Yu-Xiang, Ji Shuo, Feng Bo-Qin, Wu Wan-Jie. A Loop Selection Approach Based on Performance Prediction for Speculative Multithreading[J]. Journal of Electronics & Information Technology, 2014, 36(11): 2768-2774. doi: 10.3724/SP.J.1146.2013.01879
Citation:
Liu Bin, Zhao Yin-Liang, Han Bo, Li Yu-Xiang, Ji Shuo, Feng Bo-Qin, Wu Wan-Jie. A Loop Selection Approach Based on Performance Prediction for Speculative Multithreading[J]. Journal of Electronics & Information Technology, 2014, 36(11): 2768-2774. doi: 10.3724/SP.J.1146.2013.01879
Liu Bin, Zhao Yin-Liang, Han Bo, Li Yu-Xiang, Ji Shuo, Feng Bo-Qin, Wu Wan-Jie. A Loop Selection Approach Based on Performance Prediction for Speculative Multithreading[J]. Journal of Electronics & Information Technology, 2014, 36(11): 2768-2774. doi: 10.3724/SP.J.1146.2013.01879
Citation:
Liu Bin, Zhao Yin-Liang, Han Bo, Li Yu-Xiang, Ji Shuo, Feng Bo-Qin, Wu Wan-Jie. A Loop Selection Approach Based on Performance Prediction for Speculative Multithreading[J]. Journal of Electronics & Information Technology, 2014, 36(11): 2768-2774. doi: 10.3724/SP.J.1146.2013.01879
Thread-Level Speculation (TLS) is a thread-level automatic parallelization technique to accelerate sequential programs on multi-core. Loops are usually regular structures and programs spent significant amounts of time executing them, thus loops are ideal candidates for exploiting the parallelism of programs. However, it is difficult to decide which set of loops should be parallelized to improve overall program performance. In order to solve the problem, this paper proposes a loop selection approach based on performance prediction. Basing on the input training set, the paper gathers profiling information during program pre-execution. Combining profiling information associated with the program and various speculative execution factors, the paper establishes a performance prediction model for loops. Then, based on the result of prediction, the paper can quantitatively estimate the speedup of loops and decide which loops should be parallelized on runtime. The experimental results show that the proposed approach effectively predicts the parallelism of loops when speculative execution and accurately selects beneficial loops for speculative parallelization according to the predicted results, finally Olden benchmarks reach 12.34% speedup performance improvement on average speedup.