Hostname: page-component-77f85d65b8-9nbrm Total loading time: 0 Render date: 2026-04-19T03:29:40.739Z Has data issue: false hasContentIssue false

A practical functional program for the CRAY X-MP*

Published online by Cambridge University Press:  07 November 2008

James M. Boyle
Affiliation:
Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, IL 60439, USA
Terence J. Harmer
Affiliation:
The Queen's University of Belfast, Department of Computer Science, Belfast BT7 INN, Northern Ireland
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

One can have all the advantages of functional programming – correctness, clarity, simplicity, and flexibility – without any sacrifice in performance, even for a scientifically significant computation on a supercomputer. Therefore, why use Fortran? We demonstrate parity – equality of speed and storage use – between a program generated automatically from a functional specification and a program written by hand in the procedural style. To our knowledge, this demonstration of parity is the first for a program that solves a scientifically significant problem – quasi-linear hyperbolic partial differential equations – on a scientifically interesting supercomputer – the CRAY X-MP. We use pure Lisp, including higher-order functions, to express the functional specification for the PDE solver. We designed this specification for maximal clarity and flexibility, rather than for efficiency. Nevertheless, we obtain a highly efficient program to solve the PDEs: automated program transformations put back the missing efficiency as they produce an executable Fortran program from the specification. The generated Fortran program vectorizes on the CRAY X-MP and runs about 4% faster than a handwritten Fortran program for the same problem. We describe the problem and the specification, and some of the problem-domain-specific and hardware-specific transformations that we use to obtain the high-efficiency program.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 1992
Submit a response

Discussions

No Discussions have been published for this article.