{'fraction_non_alphanumeric': 0.01600609756097561, 'fraction_numerical': 0.001524390243902439, 'mean_word_length': 5.404878048780488, '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}}
Accelerating Neural Network Training Process on Multi-Core Machine Using OpenMP

Modern machine learning algorithms when applied to some real-world data, such as social networks and web graphs, can be very time-consuming. Despite enormous researches were focusing on making their approaches more scalable, however, their proposed approaches are running sequentially which makes the training run time remain noticeably long. Thus, it is reasonable to split the research among multiple processes. This is where we believe parallel processing can help. In this paper, we develop an OpenMP-based approach for parallelizing neural networks on multi-core CPUs. The novelty of our approach is that it is more general as it mainly covers CPU-based parallel training implementation, we focus on accelerating the training phase of neural networks using OpenMP that divides the work among multiple threads to run in parallel. Our experimental evaluation of a binary classification problem run on the banknote authentication dataset which contains images of banknotes with a machine with 12 cores demonstrates a significant acceleration of the training process compared to related works. We outline some possible approaches for further research concerning parallel optimization of execution time in neural network processes.