Co-Array Fortran Performance and Potential: An NPB Experimental Study
Cristian Coarfa, Yuri Dotsenko,
Jason Eckhardt, and John Mellor-Crummey
To appear at
16th Workshop on Languages and Compilers for Parallel Computing (LCPC03), College Station, TX, 2-4 October 2003
Full Text, Printable Abstract.
Abstract
Co-array Fortran (CAF) is an emerging model for scalable, global
address space parallel programming that consists of a small set of
extensions to the Fortran 90 programming language. Compared to MPI,
the widely-used message-passing programming model, CAF's global
address space programming model simplifies the development of
single-program-multiple-data parallel programs by shifting the
burden for choreographing and optimizing communication from developers
to compilers. This paper describes an open-source, portable, and
retargetable CAF compiler under development at Rice University that is
well-suited for today's high-performance clusters. Our
compiler translates CAF into Fortran 90 plus calls to
one-sided communication primitives.
Preliminary experiments comparing CAF and MPI versions of several of
the NAS parallel benchmarks on an Itanium 2 cluster with a Myrinet
2000 interconnect show that our CAF compiler delivers performance that
is roughly equal to or, in many cases,
better than that of programs parallelized using MPI, even
though our compiler presently lacks support for global optimization of
communication.