Conference Paper

Optimizing MPI Runtime Parameter Settings by Using Machine Learning

DOI: 10.1007/978-3-642-03770-2_26 Conference: 16th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface

ABSTRACT Manually tuning MPI runtime parameters is a practice commonly employed to optimise MPI application performance on a specific architecture.
However, the best setting for these parameters not only depends on the underlying system but also on the application itself and its input data.
This paper introduces a novel approach based on machine learning techniques to estimate the values of MPI runtime parameters that tries to achieve optimal speedup for a target architecture and any unseen input program.
The effectiveness of our optimization tool is evaluated against two benchmarks executed on a multi-core SMP machine.

  • [Show abstract] [Hide abstract]
    ABSTRACT: This paper proposes a methodology designed to tackle the most common problems of MPI parallel programs. By developing a methodology that applies simple steps in a systematic way, we expect to obtain the basis for a successful autotuning approach of MPI applications based on measurements taken from their own execution. As part of the Au-toTune project, our work is ultimately aimed at extending Periscope to apply automatic tuning to parallel applications and thus provide a straightforward way of tuning MPI parallel codes. Experimental tests demonstrate that this methodology could lead to significant performance improvements.
    Proceedings of the 20th European MPI Users' Group Meeting; 09/2013
  • [Show abstract] [Hide abstract]
    ABSTRACT: The process of empirical autotuning results in the generation of many code variants which are tested, found to be suboptimal, and discarded. By retaining annotated performance profiles of each variant tested over the course of many autotuning runs of the same code across different hardware environments and different input datasets, we can apply machine learning algorithms to generate classifiers for runtime selection of code variants from a library, generate specialized variants, and potentially speed the process of autotuning by starting the search from a point predicted to be close to optimal. In this paper, we show how the TAU Performance System suite of tools can be applied to autotuning to enable reuse of performance data generated through autotuning.
    International Journal of High Performance Computing Applications 11/2013; 27(4):403-411. · 1.63 Impact Factor
  • [Show abstract] [Hide abstract]
    ABSTRACT: MPI implementations provide several hundred runtime parameters that can be tuned for performance improvement. The ideal parameter setting does not only depend on the target multiprocessor architecture but also on the application, its problem and communicator size. This paper presents ATune, an automatic performance tuning tool that uses machine learning techniques to determine the program-specific optimal settings for a subset of the Open MPI's runtime parameters. ATune learns the behaviour of a target system by means of a training phase where several MPI benchmarks and MPI applications are run on a target architecture for varying problem and communicator sizes. For new input programs, only one run is required in order for ATune to deliver a prediction of the optimal runtime parameters values. Experiments based on the NAS Parallel Benchmarks performed on a cluster of SMP machines are shown that demonstrate the effectiveness of ATune. For these experiments, ATune derives MPI runtime parameter settings that are on average within 4% of the maximum performance achievable on the target system resulting in a performance gain of up to 18% with respect to the default parameter setting.
    Proceedings of the 7th ACM international conference on Computing frontiers; 01/2010

Full-text (2 Sources)

Available from
May 15, 2014