A C++ implementation of the co-array programming model for blue gene/L

Blue Gene/L (BG/L) is a 65, 536-node massively parallel computer being developed at the IBM Thomas J. Watson Research Center that promises to revolutionize large-scale scientific computing. However, its size alone will make programming BG/L a major challenge, both from a correctness and from a performance perspective. This has motivated us to look into new programming models that have been proposed as an alternative for MPI on parallel systems. We find the Co-Array programming model attractive for its simplicity and high performance. Instead of implementing this model in the usual way, as language extensions to Fortran, we have chosen to implement it as a C++ library. This allows us to prototype and deploy this implementation with a relatively small effort, and to experiment with it on existing machines. Users also benefit, for they can experiment with this programming model early and without learning a new language. Our preliminary results indicate that parallel programs written with our C++ Co-Array library can reach good levels of speedup.

[1]  Burkhard D. Steinmacher-Burow,et al.  Cellular supercomputing with system-on-a-chip , 2002, 2002 IEEE International Solid-State Circuits Conference. Digest of Technical Papers (Cat. No.02CH37315).

[2]  W. Gropp,et al.  Using MPI-2nd Edition , 1999 .

[3]  Katherine Yelick,et al.  Introduction to UPC and Language Specification , 2000 .

[4]  Robert W. Numrich,et al.  Co-array Fortran for parallel programming , 1998, FORF.

[5]  Katherine A. Yelick,et al.  Titanium: A High-performance Java Dialect , 1998, Concurr. Pract. Exp..

[6]  Robert J. Harrison,et al.  Global arrays: A nonuniform memory access programming model for high-performance computers , 1996, The Journal of Supercomputing.

[7]  William Gropp,et al.  Mpi---the complete reference: volume 1 , 1998 .

[8]  David R. Butenhof Programming with POSIX threads , 1993 .

[9]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .