Transforming MPI source code based on communication patterns

  • Authors:
  • Robert Preissl;Martin Schulz;Dieter Kranzlmüller;Bronis R. de Supinski;Daniel J. Quinlan

  • Affiliations:
  • CASC, Lawrence Livermore National Laboratory, USA and GUP, Johannes Kepler University Linz, Austria;CASC, Lawrence Livermore National Laboratory, USA;Department of Computer Science, Ludwig-Maximilians University (LMU), Munich, Germany and Leibniz Supercomputing Centre (LRZ), Garching, Germany;CASC, Lawrence Livermore National Laboratory, USA;CASC, Lawrence Livermore National Laboratory, USA

  • Venue:
  • Future Generation Computer Systems
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

A high-level understanding of communication behavior can facilitate performance optimization of HPC applications. In particular, MPI communication patterns can serve as the basis of code transformations that substitute more efficient operations for those originally used by the application developer. We present a novel algorithm for identifying MPI communication patterns and a mechanism to perform source code transformations based on the observed patterns. Our transformation mechanism, implemented within the ROSE compiler framework, modifies the abstract syntax tree based on static analysis that confirms the generalizability of the patterns that we detect. Our results demonstrate the efficiency of our approach. Our pattern detection algorithm, which we evaluate with realistic applications using traces from up to 128 processors as well as with simple benchmarks, has low overhead as input or job size grows. Our transformation mechanism quickly optimizes MPI source code by replacing MPI code fragments for collective operations through highly optimized native MPI functions and by increasing the overlapping of communication and computation.