A High Dimensional Array Assignment Method for Parallel Computing Systems

New features of Fortran are changing the way in which scientists are writing, maintaining and parallelizing large analytic codes. Among the most exciting kinds of language developments are those having to do with parallelism. This paper describes Fortran 90 and the standardized language extensions for both shared-memory and distributed-memory parallelism. Several casestudies are examined showing how the distributed-memory extensions (High Performance Fortran) are used both for data parallel and MIMD (multiple instruction multiple data) algorithms. 1 A Brief History of Fortran Fortran (FORmula TRANdating) was the result of a project begun by John Backus at IBM in 1954. The goal of this project was to provide a way for programmers to express mathematical formulas through a formalism that computers could translate into machine instructions. Fortran haa evolved continuously over the years in response to the needs of users. Areas of evolution have addressed mathematical expressivity, program maintainability, hardware control (such as 1/0) and, of course, code optimizations. In the meantime, other languages such as C and C++ have been designed to better meet the non-mathematical aspects of software design. By the 1980’s, pronouncements of the ‘death of Fortran’ prompted language designers to propose extensions to Fortran which incorporated the best features of these other high-level languages and, in addition, provided new levels of mathematical expressivity that had become popular on supercomputers such as the CYBER 205 and the CRAY systems. This language became standardized as Fortran 90 (ISO/IEC 1539: 1991; ANSI X3.198-1992). Although it isn’t clear at this time whether the modernization of Fortran can, of itself, stem the C tide, I will try to demonstrate in this paper that modern Fortran is a viable mainstream language for parallelism. Although parallelism is not yet part of the scientific programming mainstream, it seems likely that parallelism will become much more common now that appropriate standards have evolved. Just as early Fortran enabled average scientists and engineers to program computers of the 1960’s, modern Fortran may enable average scientists and engineers to program parallel computers by the beginning of the next millenia. 2 An Introduction to Fortran 90 Fortran 90 has added some important capabilities in the area of mathematical expressivity by introducing a wealth of natural constructs for manipulating