{'fraction_non_alphanumeric': 0.010638297872340425, 'fraction_numerical': 0.0, 'mean_word_length': 5.626760563380282, '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 heuristic approach for finding a solution to the constant-degree parallelism alignment problem

Two important aspects have to be addressed when automatically parallelizing loop nests for massively parallel distributed memory computers, namely maximizing parallelism and minimizing communication overhead due to non-local data accesses. This paper studies the problem of finding a computation mapping and data distributions that minimize the number of remote data accesses for a given degree of parallelism. This problem is called the constant-degree parallelism alignment problem. The heuristic presented uses a linear algebra framework and assumes affine data access functions. It proceeds by incrementally building a basis of the set of vectors representing the alignments between computation and data accesses that should be satisfied. The heuristic algorithm is applied to benchmark programs and shown superior to more basic mappings.