{'fraction_non_alphanumeric': 0.010337698139214336, 'fraction_numerical': 0.0, 'mean_word_length': 5.511210762331839, '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}}
Contention Management Policy in Software Transactional Memory in Parallel and Distributed Systems

In Parallel Programming, Transactional memory serves as a better alternative compared to the inherently used lock based programming. Transactional Memory implements fine grained locking at the ease of coarse grained programming. It scales well under low contention scenarios. A conflict depends on the interactions among the underlying data patterns. To handle conflicts in Transactional Memory the existing solution is addressed in two ways. One is Scheduling the Contentions and the other is Contention Management policy. Scheduling the contentions require storage of data structures that stores the contentions. Complexity of these data structures increases with increase in the application size. On the other hand the contention managers cannot handle high contention workloads and they are suited only for specific data patterns. In this project, the conflicts are handled by using a novel approach for contention management by using the time based and the workload based policies. The experiments conducted on the proposed contention manager policies along with the existing contention managers using Stamp Benchmarks, Inset Benchmarks and a sample bank application available in the Transactional Memory Library. Experiments are conducted on all the benchmarks and a review of policies for the various Benchmark programs is reported in this work.