Automatic MPI to AMPI Program Transformation Using Photran
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.
Unable to display preview. Download preview PDF.
- 1.Eclipse - an open development platform, http://www.eclipse.org/
- 4.Jin, H., der Wijngaart, R.F.V.: Performance characteristics of the multi-zone nas parallel benchmarks. In: Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS) (2004)Google Scholar
- 6.Kamal, H., Wagner, A.: Fg-mpi: Fine-grain mpi for multicore and clusters. In: The 11th IEEE International Workshop on Parallel and Distributed Scientific and Engineering Computing (PDESC). IEEE, Los Alamitos (April 2010)Google Scholar
- 7.Photran - An IDE for Fortran, http://www.eclipse.org/photran/
- 9.Sedov, L.I.: Similarity and Dimensional Methods in Mechanics (1959)Google Scholar
- 12.Zheng, G., Lawlor, O.S., Kalé, L.V.: Multiple flows of control in migratable parallel programs. In: 2006 International Conference on Parallel Processing Workshops (ICPPW 2006), Columbus, Ohio, pp. 435–444 (August 2006)Google Scholar