{'fraction_non_alphanumeric': 0.02437538086532602, 'fraction_numerical': 0.007921998781230956, 'mean_word_length': 5.243346007604563, '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}}
Can the hybrid colouring algorithm take advantage of multi-core architectures

Graph colouring is a complex computational problem that focuses on colouring all vertices of a given graph using a minimum number of colours. However, adjacent vertices are restricted from receiving the same colour. Over recent decades, various algorithms have been proposed and implemented to solve such a problem. An interesting algorithm is the hybrid colouring algorithm, which was developed in 1999 by Galinier and Hao. The hybrid colouring algorithm was widely regarded at the time as one of the best performing algorithms for graph colouring. Nowadays, high-performance out-of-order multi-cores have emerged; consequently, executing applications faster and efficiently. Thus, the objective of this paper is to analyse whether the hybrid colouring algorithm can take advantage of multi-core architectures, in terms of performance, or not. For this purpose, we propose and implement a parallel version of the hybrid colouring algorithm that takes advantage of all hardware resources. Several experiments were performed on a machine with two Intel(R) Xeon(R) CPU E5-2630 processors, thus having a total of 24 cores. The experiment proved that the parallel hybrid colouring algorithm, using multi-core architectures, is a significant improvement over the original because it achieves enhancements of up to 40% in terms of the distance to the best chromatic number found in the literature. The expected contribution of this paper is to encourage developers to take advantage of high performance out-of-order multi-cores to solve complex computational problems.