NESL: A Nested Data-Parallel Language

作者: Guy E. Blelloch

DOI:

关键词: Parallel computingData structureParallel languageParallel algorithmImplicit parallelismGraph (abstract data type)Computer scienceString (computer science)Theoretical computer scienceParallel random-access machineNESL

摘要: This report describes NESL, a strongly-typed, applicative, data-parallel language. NESL is intended to be used as portable interface for programming variety of parallel and vector supercomputers, basis teaching algorithms. Parallelism supplied through simple set constructs based on vectors, including mechanism applying any function over the elements in rich functions that manipulate vectors. fully supports nested vectors parallelism--the ability take apply it multiple instances parallel. Nested parallelism important implementing algorithms with complex dynamically changing data structures, such required many graph sparse matrix also provides calculating asymptotic running time program various machine models, random access (PRAM). useful estimating times actual machines and, when algorithms, supplying close correspondence between code theoretical complexity. defines several examples coded The include median finding, sorting, string searching, finding prime numbers, planar convex hull. currently compiles an intermediate language called VCODE, which runs Cray Y-MP, Connection Machine CM-2, Encore Multimax. For current implementation gives performance optimized machine-specific these machines.

参考文章(24)
B. Noyce, J. Glauert, J. McGraw, S. Skedzielewski, R. Thomas, S. Allan, C. Kirkham, R. Oldehoeft, SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 ,(1985)
Andrew W. Appel, David B. MacQueen, Standard ML of New Jersey international symposium on programming language implementation and logic programming. pp. 1- 13 ,(1991) , 10.1007/3-540-54444-5_83
E. Schonberg, E. Dubinsky, R. B. Dewar, J. T. Schwartz, Programming with Sets: An Introduction to SETL ,(1986)
Mads Tofte, Mads Tofte, Robert Harper, Robin Milner, The Definition of Standard ML ,(1990)
Arvind, Rishiyur S. Nikhil, Keshav K. Pingali, I-structures: data structures for parallel computing ACM Transactions on Programming Languages and Systems. ,vol. 11, pp. 598- 632 ,(1989) , 10.1145/69558.69562
Uzi Vishkin, Deterministic sampling: a new technique for fast pattern matching SIAM Journal on Computing. ,vol. 20, pp. 22- 40 ,(1991) , 10.1137/0220002
Guy E. Blelloch, Gary W. Sabot, Compiling collection-oriented languages onto massively parallel computers Journal of Parallel and Distributed Computing. ,vol. 8, pp. 119- 134 ,(1990) , 10.1016/0743-7315(90)90087-6
Herbert Freeman, Computer Processing of Line-Drawing Images ACM Computing Surveys. ,vol. 6, pp. 57- 97 ,(1974) , 10.1145/356625.356627
Steven Fortune, James Wyllie, Parallelism in random access machines symposium on the theory of computing. pp. 114- 118 ,(1978) , 10.1145/800133.804339