| An ideal parallel programming language for scientific applications should provide flexible abstraction mechanisms for writing organized and readable programs, encourage a modular programming style that permits using libraries of tested routines, and, above all, permit the programmer to write efficient programs for the target machine. We use these criteria to evaluate the languages *Lisp, Connection, Machine Lisp, and Paralation Lisp for writing scientific programs on the Connection Machine. As a vehicle for this exploration, we fix a particular non-trivial algorithm (LU decomposition with partial pivoting) and study code for implementing it in the three languages.
Based on our findings, we propose two extensions to Paralation Lisp for writing scientific programs. The first extension is a new mapping facility, which reduces communication overhead from O (lg n ) to O (1) in many situations. The second extension, called Paralation Views, is an enhancement of the Paralation Lisp shape facility. By allowing the programmer to view the same set of data with multiple abstractions, this extension results in programs that are both more readable and more efficient. A possible implementation strategy is presented. Paralation Views integrates well with the existing Paralation Lisp language and provides excellent support for modularity and nested parallelism.