{'fraction_non_alphanumeric': 0.01514004542013626, 'fraction_numerical': 0.002271006813020439, 'mean_word_length': 5.577114427860696, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
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.