Abstract

F-- is a parallel extension to Cray Fortran 77 for distributed memory computers. It adds exactly one new symbol to the language, a vertical line that separates two sets of indices. The first set contains the coordinates for data in a local data grid. The second set contains the coordinates for processors in a global processor grid. A statement such as x(i,j)=y(i,j| p,q) generates a load from remote address y(i,j) in the data grid on processor (p,q) followed by a store to local address x(i,j) in the local data grid. F-- syntax requires an explicit statement of the relationship between data layout and processor layout. It assumes that good performance on a distributed memory computer requires the programmer to understand and to exploit data locality. Programmers use the F-- syntax only when it is needed. 0therwise all data are local and all code is local. Compiler and library developers concentrate on generating well-optimized local code.