Parallel numerical algorithms based on tensor notation and Co-Array Fortran syntax

  • Authors:
  • Robert W. Numrich

  • Affiliations:
  • Minnesota Supercomputing Institute, University of Minnesota, Minneapolis, MN 55455, USA

  • Venue:
  • Parallel Computing
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Co-Array Fortran represents a correspondence between tensor notation and an extended Fortran array syntax. It uses normal Fortran array indices to point to data in local memory and adds co-array indices to point to data in remote memory. By writing algorithms according to the rules of tensor algebra, the programmer can transcribe a parallel algorithm directly into co-array syntax and can experiment with alternative communication patterns with full confidence that the algorithm is correct. Data communication is transparent in the notation itself and the syntax allows compilers to exploit low-latency hardware so that application codes scale well to large numbers of processors. Co-array syntax, combined with the object-oriented features of Fortran 90, is a powerful tool for designing and writing parallel algorithms. It raises the level of abstraction with little or no loss of performance.