{'fraction_non_alphanumeric': 0.01824817518248175, 'fraction_numerical': 0.0, 'mean_word_length': 5.480314960629921, '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}}
Towards Applying Machine Learning to Adaptive Transactional Memory

There is tremendous diversity among the published algorithms for implementing Transactional Memory (TM). Each of these algorithms appears to be well suited to certain workloads and architectures. However, for programs that operate in distinct phases, exhibit input-dependent behavior, or must run on many different classes of machine, the best algorithm cannot be selected before the program actually runs. We introduce a mechanism for dynamic profiling of a running transactional program, and show how the profile can be used with machine learning techniques to select a TM implementation at run-time. Our preliminary results on the STAMP benchmark suite show good performance, providing a baseline for future research into adaptivity mechanisms for TM.