The connection machine
Communications of the ACM - Special issue on parallelism
Computer
Scans as Primitive Parallel Operations
IEEE Transactions on Computers
Data optimization: allocation of arrays to reduce communication on SIMD machines
Journal of Parallel and Distributed Computing - Massively parallel computation
A functional programming language compiler for massively parallel computers
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A report on the Sisal language project
Journal of Parallel and Distributed Computing - Special issue: data-flow processing
Journal of Parallel and Distributed Computing
Connection Machine Lisp: fine-grained parallel symbolic processing
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Communications of the ACM
A parallel language and its compilation to multiprocessor machines or VLSI
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parallel Sorting Algorithms
SVP: A Model Capturing Sets, Lists, Streams, and Parallelism
VLDB '92 Proceedings of the 18th International Conference on Very Large Data Bases
Deriving efficient parallel programs for complex recurrences
PASCO '97 Proceedings of the second international symposium on Parallel symbolic computation
Data movement optimisation in point-free form
AMAST'06 Proceedings of the 11th international conference on Algebraic Methodology and Software Technology
Hi-index | 0.00 |
Data-parallelism provides a clean conceptual framework for parallel programming. We are developing two programming languages: a high level equational language, called EL*, and a low-level implementation language. Both languages exploit data-parallelism instead of control-parallelism. EL* is a declarative data-parallel language. EL* programs are high-level equational specifications that use extensive pattern-matching and recursion. The language's syntax and semantics are intended to be clear and simple. Recursive forms are restricted to enable translation to efficient data-parallel operations. EL* programs are compiled into FP*, a variant of Backus's FP, where parallel operations are more explicit and low-level. The target language has a rich set of functions for performing communication, and computation. It also has a powerful set of combining forms that generate large highly-parallel functions from smaller program units. Prototype compilers have been implemented for both languages, and they demonstrate good performance. Several linear algebra and non-numeric problems have been programmed with relative ease using EL*. We are currently developing compilation techniques for a wider range of scientific problems that have more complex parallel solutions, and are continuing to expand the language's scope.