In Partial Fulfillment of the Requirements for the Degree of
Master of Science
Will defend his thesis
Coarray Fortran (CAF) is a proposed Partitioned Global Address SPACE (PGAS) programming language extension to Fortran 95 that has been adopted as part of the Fortran 2008 standard. The language promises simple, explicit data locality and decomposition, and less effort for parallel programming by providing high-level language syntax and implicit intuitive communication of parallelism.
TCoarrays are variables that can be shared by all CAF images, processes that may be spread across the nodes of a distributed memory system. Each image has its own copy of a coarray, but can access the coarrays of other images. The major advantage of CAF is that application developers simply use co-subscripts for coarrays to distinguish shared variable accesses from local ones. The co-subscript annotation provides a virtual process topology and supports the insertion of explicit communication to transfer data between CAF images.
We have developed a CAF runtime system that implements 1-sided communication between images as part of our implementation of Coarray Fortran in our OpenUH compiler. The approach taken allows the runtime to exploit both ARMCI and GASNet communication subsystems. In this thesis, we present the implementation of PGAS memory management, synchronizations and collective operations of CAF intrinsic constructs, the representation and interaction of dope vectors and codope vectors for coarrays, and more. We present the results of experiments using both ARMCI and GASNet-based runtime implementations. We will also discuss a number of potential performance enhancements, including overlapping communication, Active Messages, and point-to-point communication.