Retire Fortran?: a debate rekindled

A Debate Rekindled-of 1984, te between ~cGraw ~awrence ivermore tional Laboratory (LLNL) and David Kuck and Michael Wolfe of Kuck and Associates, appeared in Physics Today [19]. The subject was whether to retire Fortran. Eight years have passed, and we wish to reopen the debate and provide further evidence that Fortran is not the sine qua non of high-speed computing. Many believe that the existing investments in Fortran and the quality of existing Fortran compilers are preventing a change in programming methodology. Many also feel that support for Fortran must continue because the language is familiar and widely available. Unfortunately , the complexity of writing correct parallel programs in Fortran is perpetuating today's software crisis. We believe, as did McGraw in 1984, that increased productivity, generality, utility, portability, and performance are only possible if programmers avoid the constraints of imperative languages and adopt a higher level of abstraction. We must escape the morass of imperative semantics and attain a level of abstraction that separates the programmer from the machine, stresses problem definition over the mechanics of solution, and provides complete information to the compiler. While Kuck and Wolfe would probably have agreed with the above statements, they wisely argued that programmers would not use languages that did not allow them to get the performance they required. To this McGraw had no counterargument, for in 1984, only Fortran provided the performance needed for large-scale scientific computing. The intent of this article is to reopen the debate and present overwhelming evidence that functional supercomputing is possible. To this end, we compare the execution performance of Sisal, a functional language for large-scale scientific computing, and For-tran on a Cray Y-MP/864. The Crays remain the most heavily used machines in our nation's supercom-puter centers, and are the preferred machines of most scientific programmers. Thus, it is here that languages must outperform For-tran if they are to replace it. For completeness and for the benefit of those readers not familiar with the principles of functional computing, the next two sections examine the functional programming paradigm, discuss its attributes and advantages, and highlight the salient features of Sisal. In the remaining sections we illustrate the potential inefficiencies of functional computing, present our most recent performance data, and give some closing remarks regarding Fortran and the future of high-speed computing. In 1984, McGraw noted that, by all indications, future supercomputers would be multiprocessors. Today, most supercomputer users …

[1]  R. J. Simpson,et al.  A simple method to remove reference counting in applicative programs , 1988 .

[2]  Jeffrey M. Barth A practical interprocedural data flow analysis algorithm , 1978, CACM.

[3]  James M. Boyle,et al.  A practical functional program for the CRAY X-MP , 1992, Journal of Functional Programming.

[4]  James Mcgraw,et al.  Graph transformation algorithms for array memory optimization in applicative languages , 1987 .

[5]  F. H. Mcmahon,et al.  The Livermore Fortran Kernels: A Computer Test of the Numerical Performance Range , 1986 .

[6]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[7]  Paul Hudak,et al.  The aggregate update problem in functional programming systems , 1985, POPL.

[8]  John Glauert,et al.  SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 , 1985 .

[9]  John Feo,et al.  The SISAL 2. 0 reference manual , 1991 .

[10]  K. Gopinath Copy elimination in single assignment languages , 1988 .

[11]  John Glauert,et al.  SISAL: streams and iteration in a single-assignment language. Language reference manual, Version 1. 1 , 1983 .

[12]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[13]  Bruce J. MacLennan,et al.  Functional programming - practice and theory , 1990 .

[14]  Adrienne G. Bloss Update analysis and the efficient implementation of functional aggregates , 1989, FPCA.

[15]  C. P. Hendrickson Programming a real code in a functional language (part 1) , 1991 .

[16]  Arvind,et al.  Executing a Program on the MIT Tagged-Token Dataflow Architecture , 1990, IEEE Trans. Computers.

[17]  E. York,et al.  Small zone gel chromatography of interacting systems: theoretical and experimental evaluation of elution profiles for kinetically controlled macromolecule-ligand reactions. , 1988, Analytical biochemistry.

[18]  David C. Cann,et al.  Compilation techniques for high-performance applicative computation , 1989 .

[19]  Gregory K. Egan,et al.  An implementation of a barotropic Numerical Weather Prediction model in the functional language SISAL , 1990, PPOPP '90.

[20]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[21]  J. Cann,et al.  Analysis of the gel electrophoresis of looped protein-DNA complexes by computer simulation. , 1990, Journal of molecular biology.