SEMINAR

Co-Array Fortran and OpenMP Fortran for SPMD Programming

Alan Wallcraft

Naval Research Laboratory
Stennis Stace Center

ABSTRACT

In the Single Program Multiple Data approach to parallelization multiple instances of the same program are run at the same time with the instances traditionally communicating via a message passing library such as MPI. A special case of SPMD, domain decomposition, is typically the best approach to parallelizing CFD models (including ocean models) based on both structured and unstructured grids. Message passing is inefficient on shared memory machines, and may not be optimal even on "shared nothing" systems. A better alternative is direct (remote) memory access. OpenMP Fortran provides directive based control of multiple threads on a machine with a cache-coherent shared memory, and a subset of OpenMP directives can be used for SPMD programming. Co-Array Fortran is a small extension to Fortran 90 designed explicitly for SPMD programming. It can use threads on a shared memory machine but can also be implemented on a shared nothing machine where is should be at least as efficient as MPI. These two dialects of Fortran are described and compared with each other and with MPI.

Realted links:
CAF: http://www.co-array.org/
MPI: http://www.mpi-forum.org/, http://www.mcs.anl.gov/mpi/
OMP: http://www.openmp.org/

WHERE: TEC 340

WHEN(day): Friday, February 26th, 1999

WHEN(time): 2:00 PM

EVERYBODY IS INVITED