Compiler and Runtime Approach for Supporting Efficient Execution of Coarray Fortran Programs

Date

2015-05

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Fortran remains a very widely used programming language for technical computing. Fortran coarrays are new elements in the Fortran standard which aim to support the development of parallel programs without requiring the use of external constructs such as libraries (e.g. MPI) or directives (e.g. OpenMP). Coarrays provide a Partitioned Global Address Space (PGAS) approach to parallel programming in which the programmer declares arrays to be partitioned across different images that collaboratively perform the computations. However, to date coarrays are not widely used in commercial code since a robust implementation has only been available on Cray platforms. As a result, there has been relatively little experience with coarrays, reporting of performance data, and a clear lack of portability. The work described in this dissertation aims to make a fundamental contribution to the state of the art of parallel programming by providing a robust, open-source implementation of the coarray features in the Fortran standard. It describes an efficient, near-commercial strength implementation technology for coarrays which we developed. An evaluation of this implementation using developed micro-benchmarks is presented, where we show in particular the benefits of our approach for supporting strided communication, synchronization, and collectives compared to other coarray implementations. When running developed benchmarks and codes from real-world applications, we obtained performance with our coarray implementation on par or exceeding that obtained using other implementations. We also present support for additional features expected to be added to the Fortran standard, demonstrating its utility for writing and improving the performance of a range of codes. Finally, we describe an extension for parallel I/O in coarray programs which we designed.

Description

Keywords

Compilers, PGAS, Coarrays

Citation

Portions of this document appear in: Chapman, Barbara, Deepak Eachempati, and Oscar Hernandez. "Experiences developing the openuh compiler and runtime infrastructure." International Journal of Parallel Programming 41, no. 6 (2013): 825-854. And in: Eachempati, Deepak, Hyoung Joon Jun, and Barbara Chapman. "An open-source compiler and runtime implementation for Coarray Fortran." In Proceedings of the Fourth Conference on Partitioned Global Address Space Programming Model, p. 13. ACM, 2010. And in: Eachempati, Deepak, Alan Richardson, Siddhartha Jana, Terrence Liao, Henri Calandra, and Barbara Chapman. "A Coarray Fortran implementation to support data-intensive application development." Cluster Computing 17, no. 2 (2014): 569-583. And in: Eachempati, Deepak, Alan Richardson, Siddhartha Jana, Terrence Liao, Henri Calandra, and Barbara Chapman. "A Coarray Fortran implementation to support data-intensive application development." Cluster Computing 17, no. 2 (2014): 569-583.