Abstract:
interpreted as representing the official policies, either expressed or implied, of the U.S. government. Keywords: Data-parallel, parallel algorithms, supercomputers, nested parallelism, PRAM model, parallel programming languages, collection-oriented languages. This report describes Nesl, a strongly-typed, applicative, data-parallel language. Nesl is intended to be used as a portable interface for programming a variety of parallel and vector supercomputers, and as a basis for teaching parallel algorithms. Parallelism is supplied through a simple set of data-parallel constructs based on sequences (ordered sets), including a mechanism for applying any function over the elements of a sequence in parallel and a rich set of parallel functions that manipulate sequences. Nesl fully supports nested sequences and nested parallelism---the ability to take a parallel function and apply it over multiple instances in parallel. Nested parallelism is important for implementing algorithms with complex and dynamically changing data structures, such as required in many graph and sparse matrix algorithms. Nesl also provides a mechanism for calculating the asymptotic running time for a program on various parallel machine models,
Citations
|
6327
|
Introduction to algorithms
– Cormen, Leiserson, et al.
- 1990
|
|
1504
|
The De of Standard ML
– Milner, Tofte, et al.
- 1990
|
|
265
|
Parallelism in random access machines
– Fortune, Wyllie
- 1978
|
|
253
|
Vector Models for Data-Parallel Computing
– Blelloch
- 1990
|
|
233
|
The parallel evaluation of general arithmetic expressions
– Brent
- 1974
|
|
203
|
I-structures: Data structures for parallel computing
– Arvind, Pingali
- 1989
|
|
202
|
Standard ML of New Jersey
– Appel, MacQueen
- 1991
|
|
168
|
A Programming Language
– Iverson
- 1962
|
|
139
|
Scans as primitive parallel operations
– Blelloch
- 1989
|
|
139
|
Implementation of a portable nested data-parallel language
– Blelloch, Chatterjee, et al.
- 1994
|
|
128
|
Programming with Sets: An Introduction to Setl
– Schwartz, Dewar, et al.
- 1986
|
|
125
|
Report on the functional programming language Haskell, version 1.2
– Hudak, Jones, et al.
- 1992
|
|
82
|
An overview of Miranda
– Turner
- 1986
|
|
77
|
Compiling collection-oriented languages onto massively parallel computers
– Blelloch, Sabot
- 1990
|
|
67
|
C*: An extended C language for data parallel programming
– Rose, Steele
- 1987
|
|
60
|
Probabilistic Parallel Algorithms for Sorting and Selection
– Reischuk
- 1985
|
|
56
|
SISAL: Streams and Iteration in a Single Assignment Language: reference manual version 1.2
– McGraw, Skedzielewski, et al.
- 1985
|
|
56
|
Collection-oriented languages
– Sipelstein, Blelloch
- 1991
|
|
35
|
Scan primitives for vector computers
– Chatterjee, Blelloch, et al.
- 1990
|
|
28
|
Algorithm 63 (partition) and algorithm 65 (find
– Hoare
- 1961
|
|
27
|
An Optimal O(log log n) Time Parallel String Matching Algorithm
– Breslauer, Galil
- 1990
|
|
27
|
Compiling Data-Parallel Programs for Efficient Execution on Shared-Memory Multiprocessors
– Chatterjee
- 1991
|
|
23
|
An O(n log n) parallel max-flow algorithm
– Shiloach, Vishkin
- 1982
|
|
19
|
Parallel solutions to geometric problems on the scan model of computation
– Blelloch, Little
- 1988
|
|
13
|
Size and access inference for data-parallel programs
– Blelloch, Chatterjee, et al.
- 1991
|
|
11
|
Deterministic sampling--a new technique for fast pattern matching
– Vishkin
- 1991
|
|
6
|
The Essential *Lisp Manual. Thinking Machines Corporation
– Lasser
- 1986
|
|
3
|
Computer processing of line-drawing images, Computing Surveys 6(1): 5797
– Freeman
- 1974
|
|
1
|
Id reference manual. Technical Report Computation Structures Group Memo 284-1
– Nikhil
- 1990
|