{'fraction_non_alphanumeric': 0.022357723577235773, 'fraction_numerical': 0.0020325203252032522, 'mean_word_length': 5.700680272108843, '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}}
Paradigms for Effective Parallelization of Inherently Sequential Graph Algorithms on Multi-Core Architectures

The chapter describes two algorithmic paradigms, dubbed Speculation and Iteration and Approximate Update, for parallelizing greedy graph algorithms and vertex ordering algorithms, respectively, on multicore architectures. The common challenge in these two classes of algorithms is that the computations involved are inherently sequential. The efficacy of the paradigms in overcoming this challenge is demonstrated via extensive experimental study on two representative algorithms from each class and two Intel multi-core systems. The algorithms studied are: (i) greedy algorithms for distance-k coloring (for k = 1 and k = 2) and (ii) algorithms for two degree-based vertex orderings. The experimental results show that the paradigms enable the design of scalable methods that to a large extent preserve the quality of solution obtained by the underlying serial algorithms.