Using MPI Communication Patterns to Guide Source Code Transformations

  • Robert Preissl
  • Martin Schulz
  • Dieter Kranzlmüller
  • Bronis R. de Supinski
  • Daniel J. Quinlan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5103)


Optimizing the performance of HPC software requires a high-level understanding of communication patterns as well as their relation to source code structures. We describe an algorithm to detect communication patterns in parallel traces and show how these patterns can guide static code analysis. First, we detect patterns that identify potential bottlenecks in MPI communication traces. Next, we associate the patterns with the corresponding nodes in an abstract syntaxtree using the ROSE compiler framework. Finally we perform static analysis on the annotated control flow and system dependence graphs to guide transformations such as code motion or the automatic introduction of MPI collectives.


Communication Pattern Lawrence Livermore National Laboratory Maximal Repeat Abstract Syntax Tree Broadcast Operation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    The List of Worlds 500 Fastest Supercomputers,
  2. 2.
    Bassetti, F., Davis, K., Quinlan, D.: Improving Scalability with Loop Transformations and Message Aggregation in Parallel Object-Oriented Frameworks for Scientific Computing. In: Computing, Information, and Communications Division, Los Alamos, NM, USA (1998)Google Scholar
  3. 3.
    Kranzlmüller, D., Grabner, S., Volkert, J.: Event Graph Visualization for Debugging Large Applications. In: Proc. of SIGMETRICS Symposium on Parallel and Distributed Tools, SPDT Philadelphia, PA, USA, pp. 108–117 (1996)Google Scholar
  4. 4.
    Kranzlmüller, D.: Communication Pattern Analysis in Parallel and Distributed Programs. In: Proc. of the 20th IASTED International Multi-Conference Applied Informatics (AI 2002), International Symposia on Software Engineering, Databases, and Applications, International Association of Science and Technology for Development (IASTED). ACTA Press, Innsbruck (2002)Google Scholar
  5. 5.
    Knüpfer, A., Kranzlmüller, D., Nagel, W.E.: Detection of Collective MPI Operation Patterns. In: Kranzlmüller, D., Kacsuk, P., Dongarra, J. (eds.) EuroPVM/MPI 2004. LNCS, vol. 3241, pp. 259–267. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    Kranzlmüller, D.: Event Graph Analysis for Debugging Massively Parallel Programs. PhD thesis, GUP Linz, Johannes Kepler University Linz, Austria (2000)Google Scholar
  7. 7.
    Gusfield, D.: Algorithms on Strings, Trees, and Sequences. Computer Science and Computational Biology (1997)Google Scholar
  8. 8.
    Dixit, K., Gerlach, W., Maekinen, Vaelimaeki, N.: Engineering a Compressed Suffix Tree Implementation. Department of Computer Science, Series of Publications C, Report C-2006-37, University of Helsinki, Finland (2006)Google Scholar
  9. 9.
    Hon, W.-K., Sadakane, K., Sung, W.-K.: Breaking a time-and-space barrier in constructing full-text indices. In: FOCS 2003: Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer science, Washington, DC, USA, p. 251 (2003)Google Scholar
  10. 10.
    Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems, p. 26 (1990)Google Scholar
  11. 11.
    Schordan, M., Quinlan, D.: A source-To-Source Architecture for User-Defined Optimizations. Lawrence Livermore National Laboratory, USA (2003)Google Scholar
  12. 12.
    Quinlan, D.: Compiler Support for Object-Oriented Frameworks. Lawrence Livermore National Laboratory, USA (1999)Google Scholar
  13. 13.
    Panas, T., Quinlan, D., Vuduc, R.: Tool Support for Inspecting the Code Quality of HPC Architectures. Lawrence Livermore National Laboratory, USA (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Robert Preissl
    • 1
    • 2
  • Martin Schulz
    • 1
  • Dieter Kranzlmüller
    • 2
  • Bronis R. de Supinski
    • 1
  • Daniel J. Quinlan
    • 1
  1. 1.CASCLawrence Livermore National LaboratoryUSA
  2. 2.GUPJohannes Kepler University LinzAustria/Europe

Personalised recommendations