{'fraction_non_alphanumeric': 0.015779092702169626, 'fraction_numerical': 0.0, 'mean_word_length': 5.005917159763314, '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}}
Improving MPI communication via data type fission

Message Passing Interface (MPI) messages are centered around transmitting instances of MPI data types. The data types represented in MPI terms are usually modeled after data types native to the application. If a user does not want to transmit a field from the native data type, the user will sometimes align the MPI data type such that there is a gap in the displacement where the omitted field would be. With the resulting MPI data type now being non-contiguous, cycles are spent making the data contiguous for transmission and then expanding the data back out on the receiving side. We show that by performing data type fission (the process of segregating the transmitted fields from the non-transmitted fields) and aligning the MPI data type accordingly, we can completely eliminate the need to copy data during the packing and unpacking process, which can significantly improve the performance of communication-heavy Single Program Multiple Data applications.