- 著者
- Guy E. Blelloch
- タイトル
- NESL: A Nested Data-Parallel Language
- 日時
- January 1992
- 概要
- 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 vectors, including a mechanism for
applying any function over the elements of a vector in parallel
and a rich set of parallel functions that manipulate vectors.
NESL fully supports nested vectors 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, including the parallel random access machine
(PRAM). This is useful for approximating running times of
algorithms on actual machines and, when teaching algorithms,
for supplying a close correspondence between the code and the
theoretical complexity.
This report defines Nesl and describes several examples of
algorithms coded in the language.
The examples include algorithms for median finding, sorting,
string searching, intermediate language called VCODE, which runs
on the Cray Y-MP, Connection Machine CM-2, and Encore Multimax.
For many algorithms, the current implementation gives
performance close to optimized machine-specific code for these
machines.
- カテゴリ
- CMUTR
Category: CMUTR
Institution: Department of Computer Science, Carnegie
Mellon University
Abstract: 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 vectors, including a mechanism for
applying any function over the elements of a vector in parallel
and a rich set of parallel functions that manipulate vectors.
NESL fully supports nested vectors 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, including the parallel random access machine
(PRAM). This is useful for approximating running times of
algorithms on actual machines and, when teaching algorithms,
for supplying a close correspondence between the code and the
theoretical complexity.
This report defines Nesl and describes several examples of
algorithms coded in the language.
The examples include algorithms for median finding, sorting,
string searching, intermediate language called VCODE, which runs
on the Cray Y-MP, Connection Machine CM-2, and Encore Multimax.
For many algorithms, the current implementation gives
performance close to optimized machine-specific code for these
machines.
Number: CMU-CS-92-103
Bibtype: TechReport
Month: jan
Author: Guy E. Blelloch
Title: NESL: A Nested Data-Parallel Language
Year: 1992
Address: Pittsburgh, PA
Super: @CMUTR