Yuri Dotsenko, Cristian Coarfa, and John Mellor-Crummey. A Multiplatform Co-Array Fortran Compiler. In Proceedings of the 13th International Conference on Parallel Architecture and Compilation Techniques (PACT 2004), Antibes Juan-les-Pins, France, September, 2004.
[pdf]
Co-array Fortran (CAF)--a small set of extensions to Fortran 90--is an emerging model for scalable, global
address space parallel programming. CAF's global
address space programming model simplifies the development of
single-program-multiple-data parallel programs by shifting the
burden for managing the details of communication from developers
to compilers. This paper describes cafc--a prototype implementation of an open-source, multiplatform CAF compiler
that generates code well-suited for today's commodity clusters. The cafc compiler translates CAF into Fortran 90 plus calls to
one-sided communication primitives. The paper describes key details of cafc's approach to generating efficient code for multiple platforms.
Experiments compare the performance of CAF and MPI versions of several
NAS parallel benchmarks on an Alpha cluster with a Quadrics interconnect, an Itanium 2 cluster with a Myrinet
2000 interconnect and an Itanium 2 cluster with a Quadrics
interconnect. These experiments show that cafc compiles CAF programs into code that delivers
performance roughly equal to that of
hand-optimized MPI programs.