Automatic MPI to AMPI Program Transformation using Photran

Workshop on Productivity and Performance at Euro-Par (PROPER) 2010
Pulication Type: Paper
Download: pdf ps

Abstract

Adaptive MPI, or AMPI, is an implementation of the Message Passing Interface (MPI) standard. AMPI benefits MPI applications with features such as dynamic load balancing, virtualization, and checkpointing. Because AMPI uses multiple user-level threads per physical core, global variables become an obstacle. It is thus necessary to convert MPI programs to AMPI by eliminating global variables. Manually removing the global variables in the program is tedious and error-prone. In this paper, we present a Photran-based tool that automates this task with a source-to-source transformation that supports Fortran. We evaluate our tool on the multi-zone NAS Benchmarks with AMPI. We also demonstrate the tool on a real-world large-scale FLASH code and present preliminary results of running FLASH on AMPI. Both results show significant performance improvement using AMPI. This demonstrates that the tool makes using AMPI easier and more productive.

Text Ref

Stas Negara, Gengbin Zheng, Kuo-Chuan Pan, Natasha Negara, Ralph E. Johnson, Laxmikant V. Kale and Paul M. Ricker, "Automatic MPI to AMPI Program Transformationusing Photran", 3rd Workshop on Productivity and Performance (PROPER 2010)

BibTex

@inproceedings{AMPIFlash1005,
  author	= "Stas Negara and Gengbin Zheng and Kuo-Chuan Pan and Natasha Negara and Ralph E. Johnson and Laxmikant V. Kale and Paul M. Ricker",
  title		= "{Automatic MPI to AMPI Program Transformation using Photran}",
  booktitle = "3rd Workshop on Productivity and Performance (PROPER 2010)",
  address =    "Ischia/Naples/Italy",
  month         = "August",
  year          = "2010",
  institution   = "Parallel Programming Laboratory, Department of Computer Science, University of Illinois at Urbana-Champaign",
  number       = {10-14}
}