History of Coarrays and SPMD Parallelism in Fortran
The coarray programming model is an expression of the Single-Program-Multiple-Data (SPMD) programming model through the simple device of adding a codimension to the Fortran language. A data object declared with a codimension is a coarray object. Codimensions express the idea that some objects are located in local memory while others are located in remote memory. Coarray syntax obeys most of the same rules for normal array syntax. It is familiar to the Fortran programmer so the use of coarray syntax is natural and intuitive. Although the basic idea is quite simple, inserting it into the language definition turned out to be difficult.
In addition, the process was complicated by rapidly changing hardware and heated arguments over whether parallelism should be supported best as an interface to language-independent libraries, as a set of directives superimposed on languages, or as a set of specific extensions to existing languages.
In this paper, we review both the early history of coarrays and also their development into a part of Fortran 2008 and eventually into a larger part of Fortran 2018.
Sun 20 JunDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 11:45 | |||
09:00 15mDay opening | Welcome to HOPL IV Conference Papers | ||
09:15 60mKeynote | Myths and Mythconceptions: What does it mean to be a programming language, anyhow? Papers | ||
10:45 60mTalk | History of Coarrays and SPMD Parallelism in Fortran Papers John Reid JKR Associates and Rutherford Appleton Laboratory, Bill Long Cray Inc., Jon Steidel Intel Inc. DOI |