{'fraction_non_alphanumeric': 0.019629225736095966, 'fraction_numerical': 0.0, 'mean_word_length': 5.1610738255033555, '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}}
A Flexible and Dynamic Infrastructure for MPI Tool Interoperability

The MPI standard provides tool builders with an efficient profiling interface, PMPI. Although many tools have successfully used this interface, it has three major drawbacks: a need to relink the application in order to use a tool; an inability to combine existing tools easily; and a lack of support for tool modularity. These limitations restrict tool flexibility and increase the threshold for using MPI tools. We present PN MPI, an infrastructure to load MPI tools dynamically and to chain multiple MPI tools for concurrent use. It works with existing PMPI tools, which can be transparently converted in binary form into loadable PN MPI modules, and newly developed tools, which can exploit additional PN MPI inter-tool communication services. We show that our implementation achieves our design goals, including ease-of-use and minimal overhead