A Graph-Based Thread Partition Approach in Speculative Multithreading

Yuxiang Li,Yinliang Zhao,Qiangsheng Wu
DOI: https://doi.org/10.1002/cpe.4294
2017-01-01
Concurrency and Computation Practice and Experience
Abstract:Speculative Multithreading (SpMT) is a thread level automatic parallelization technique to accelerate sequential programs. Conventional thread partition algorithms primarily include heuristic-based and machine learning-based. The existing heuristic-based approaches are only suitable for one kind of programs and can not guarantee to get the optimal solution of thread partitioning, and the existing machine learning-based approaches usually use vector-based characterization to represent a program, but easily ignore control information among basic blocks. In this paper, we present a novel graph-based thread partition approach to avoid these problems. It characterizes programs by graphs, integrating static and dynamic features, as well as data and control information. The graph-based partition approach learns partition knowledge and predicts partition for unseen programs. Prophet, which consists of an automatic parallelization compiler and a multi-core simulator, evaluates the performance of multithreaded programs. Olden benchmarks are used to realize the approach. Experiments show that our approach delivers a maximum performance improvement of 37.42% on a 16 core than heuristic-based approach, and 37.41% against conventional machine learning-based approach. These results suggest that our graph-based thread partition approach is effective for thread partition in Speculative Multithreading.
What problem does this paper attempt to address?