In Partial Fulfillment of the Requirements for the Degree of
Master of Science
Will defend his thesis
Coarray Fortran (CAF) is an extension to the Fortran programming language which is included in the Fortran 2008 standard. It enables parallel programming in Fortran with minimum change in the language syntax. Like UPC and Global Arrays, CAF is a Partitioned Global Address Space (PGAS) language, and is suitable for both shared memory and distributed memory systems. CAF follows the SPMD programming model where multiple copies of the same program are executed independently. Providing features for expressing parallelism in the language is beneficial in contrast to an external library as the compiler has more scope for optimizations.
Our effort has created the first efficient open-source compiler for CAF. This thesis presents the runtime library used by the compiler, which is essential for implementing the PGAS memory model. The thesis describes how one-sided remote memory access is achieved, and how other runtime features are implemented. It also presents the optimizations implemented in the runtime library and the mechanisms used to preserve program correctness. Experimental results using micro-benchmarks and real applications show that the implementation performs as well as MPI and other PGAS programming models, and in some cases outperforms MPI.
We also describe the different timing and tracing options built into the runtime library to provide useful debugging information and insights into performance bottlenecks.