A provable time and space efficient implementation of NESL
- 15 June 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 31 (6) , 213-225
- https://doi.org/10.1145/232629.232650
Abstract
In this paper we prove time and space bounds for the implementation of the programming language NESL on various parallel machine models. NESL is a sugared typed λ-calculus with a set of array primitives and an explicit parallel map over arrays. Our results extend previous work on provable implementation bounds for functional languages by considering space and by including arrays. For modeling the cost of NESL we augment a standard call-by-value operational semantics to return two cost measures: a DAG representing the sequential dependence in the computation, and a measure of the space taken by a sequential implementation. We show that a NESL program with w work (nodes in the DAG), d depth (levels in the DAG), and s sequential space can be implemented on a p processor butterfly network, hypercube, or CRCW PRAM using O(w/p + d log p) time and O(s + dp log p) reachable space.1 For programs with sufficient parallelism these bounds are optimal in that they give linear speedup and use space within a constant factor of the sequential space.Keywords
This publication has 20 references indexed in Scilit:
- Programming parallel algorithmsCommunications of the ACM, 1996
- A Cost Calculus for Parallel Functional ProgrammingJournal of Parallel and Distributed Computing, 1995
- Parallelism in sequential functional languagesPublished by Association for Computing Machinery (ACM) ,1995
- Abstract models of memory managementPublished by Association for Computing Machinery (ACM) ,1995
- Fast and Efficient Simulations among CRCW PRAMsJournal of Parallel and Distributed Computing, 1994
- Implementation of a Portable Nested Data-Parallel LanguageJournal of Parallel and Distributed Computing, 1994
- On parallel hashing and integer sortingJournal of Algorithms, 1991
- Automatic complexity analysisPublished by Association for Computing Machinery (ACM) ,1989
- Storage management in virtual tree machinesIEEE Transactions on Computers, 1988
- Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential ProcessorsACM Transactions on Programming Languages and Systems, 1983