{'fraction_non_alphanumeric': 0.011830201809324982, 'fraction_numerical': 0.0055671537926235215, 'mean_word_length': 5.391111111111111, '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}}
Tuning MPI Runtime Parameter Setting for High Performance Computing

The performance of MPI applications on parallel computers can be considerably improved by tuning the runtime parameters provided by modern MPI libraries. However, due to the large and increasing number of tunable parameters, finding a parameter setting which optimizes the execution of several user programs on a chosen target machine is challenging. Existing tools execute input programs multiple times with varying parameter settings until a satisfying performance is reached. Several hundred runs of the input programs are nevertheless needed making this approach appealing only when the cost of the tuning phase can be amortized over many runs of the optimized programs. In this paper, we introduce a novel technique for tuning MPI runtime parameter values to better suit the underlying system architecture. The MPI parameter values are determined by performing the analysis of variance (ANOVA) on experimental data collected by randomly exploring the optimization space of a set of computational kernels commonly employed in High Performance Computing (HPC). We use our new technique to derive optimized values for 27 runtime parameters of the Open MPI library for two different parallel architectures. Results show an average performance improvement up to 20% for codes from the SPEC MPI 2007 benchmark suite with respect to Open MPI's default parameter setting.