Publication
Journal of Parallel and Distributed Computing
Paper

Future scientific programming on parallel machines

View publication

Abstract

A language for large scientific applications should facilitate encoding and debugging of programs at the highest level possible. At the same time it should facilitate generation of efficient code for parallel machines. Often these two requirements are conflicting, and trade-offs must be made. Functional and other declarative languages offer relief on both counts. The use of higher-order functions, especially in carried forms, can raise the level of programming dramatically. In addition, such languages often have straightforward operational semantics, thereby providing tremendous opportunities for parallel execution. Programs written in declarative languages thus eliminate the problem of "detecting parallelism." This paper illustrates programming in one such language, Id Nouveau, and contrasts it with programming in Fortran. Using an excerpt from an application known as Simple, it is shown how a program can be composed in Id Nouveau from small functions that directly relate to the mathematical and physical concepts of the problem. The difficulty of expressing these concepts in Fortran is discussed. Finally, it is shown that by performing simple transformations, such as in-line substitution of functions, the resulting Id Nouveau code becomes as efficient as an equivalent Fortran program written to run efficiently on a parallel machine. © 1988.

Date

Publication

Journal of Parallel and Distributed Computing

Authors

Topics

Share