{'fraction_non_alphanumeric': 0.022966507177033493, 'fraction_numerical': 0.0, 'mean_word_length': 5.620253164556962, '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}}
Overlapping Communication and Computation in MPI by Multithreading

Since the emergence of MPI (Message Passing Interface), how to improve its performance has always been a goal for MPI library implementation. This paper proposes an efficient architecture to achieve this goal from a very low level: using multi-threaded model to implement MPI pointto-point operations in order to overlap communication and computation. Compared to single-threaded active polling communication used by most of the implementations, multithreaded provides more parallelism. A dedicated thread, which is responsible for communication, can spare substantive CPU time for computation. Multi-threaded point-topoint operations have been implemented and tested, and the result is compared with single-threaded implementations in this paper. Both theoretical analysis and experiment result show that the multi-threaded model greatly enhances the efficiency of MPI point-to-point communication. This model is adopted in an ongoing MPI implementation project called FiTMPI.