A Virtual Sample Generation Approach for Speculative Multithreading Using Feature Sets and Abstract Syntax Trees

Speculative multithreading (SpMT) is a thread level automatic parallelization technique to accelerate sequential programs. Since approaches based on heuristic rules only get the local optimal speculative thread solution and have reached their speedup performance limit, machine learning approaches have been introduced into speculative multithreading to avoid the shortcomings of the heuristic rules relied on experience. However, few irregular programs can meet the need for training model of machine learning. To solve this problem, we first build feature sets based on Olden benchmarks and then disturb them into new sets. With the new sets, virtual samples are generated by abstract syntax trees (ASTs). By this means, we effectively resolve the shortage of samples for speculative multithreading based on machine learning. On Prophet, which is a generic SpMT processor to evaluate the performance of multithread programs, the validity of virtual samples is verified and reaches an average speedup of 1.47. Experiments show that the virtual samples can simulate a variety of procedure structures of Olden benchmarks and this sample generation technique can provide sufficient samples for training model.

[1]  T. Poggio,et al.  Recognition and Structure from one 2D Model View: Observations on Prototypes, Object Classes and Symmetries , 1992 .

[2]  Michael F. P. O'Boyle,et al.  Mapping parallelism to multi-cores: a machine learning based approach , 2009, PPoPP '09.

[3]  Grigori Fursin,et al.  A Cost-Aware Parallel Workload Allocation Approach Based on Machine Learning Techniques , 2007, NPC.

[4]  Michael F. P. O'Boyle,et al.  Towards a holistic approach to auto-parallelization: integrating profile-driven parallelism detection and machine-learning based mapping , 2009, PLDI '09.

[5]  Monica S. Lam,et al.  The SUIF Compiler System: a Parallelizing and Optimizing Research Compiler , 1994 .

[6]  Michael F. P. O'Boyle,et al.  Partitioning streaming parallelism for multi-cores: A machine learning based approach , 2010, 2010 19th International Conference on Parallel Architectures and Compilation Techniques (PACT).

[7]  Salman Khan,et al.  Using PredictiveModeling for Cross-Program Design Space Exploration in Multicore Systems , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[8]  Zhaoyu Dong,et al.  Prophet: A Speculative Multi-threading Execution Model with Architectural Support Based on CMP , 2009, 2009 International Conference on Scalable Computing and Communications; Eighth International Conference on Embedded Computing.

[9]  Wei Liu,et al.  POSH: a TLS compiler that exploits program structure , 2006, PPoPP '06.

[10]  Mark D. Hill,et al.  Amdahl's Law in the Multicore Era , 2008 .

[11]  Satoshi Matsushita,et al.  Pinot: speculative multi-threading processor architecture exploiting parallelism over a wide range of granularities , 2005, 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05).

[12]  Kunle Olukotun,et al.  The Stanford Hydra CMP , 2000, IEEE Micro.

[13]  Der-Chiang Li,et al.  A non-linearly virtual sample generation technique using group discovery and parametric equations of hypersphere , 2009, Expert Syst. Appl..

[14]  Dean M. Tullsen,et al.  Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices , 2005, PLDI '05.