H ? « »

Language peer sets for NESL:
United States
United States/1991
Designed 1991
1990s languages
Fifth generation
Post-Cold War


alternate simple view
Country: United States
Designed 1991
Published: 1991

Fine-grained, functional, data-parallel language with nested data structures and nested parallelism. Includes a built-in parallel data type and parallel operations on sequences. Loosely based on ML. Useful for parallel algorithms on sparse matrices and graphs."
NESL is a parallel language developed at Carnegie Mellon by the SCandAL project. It integrates various ideas from the theory community (parallel algorithms), the languages community (functional languages) and the system's community (many of the implementation techniques). The most important new ideas behind NESL are

Nested data parallelism: this feature offers the benefits of data parallelism, concise code that is easy to understand and debug, while being well suited for irregular algorithms, such as algorithms on trees, graphs or sparse matrices (see the examples above or in our library of algorithms).
A language based performance model: this gives a formal way to calculated the work and depth of a program. These measures can be related to running time on parallel machines.
The main emphasis in the design of NESL was to make parallel programming easy and portable. Algorithms are typically significantly more concise in NESL than in most other parallel programming languages. Furthermore the code closely resembles high-level pseudocode. Here is a comparison of a parallel quicksort in NESL and MPI (10 lines of code vs. 1700). Of course this comes at the cost of placing more responsibility on the compiler and runtime system for achieving good efficiency.

Related languages
ML NESL   Based on
NESL BSML   Influence
NESL CVL   Intermediate language for
NESL DartCVL   Intermediate language for
NESL UnCvl   Intermediate language for
NESL VCODE   Intermediate language for

  • Blelloch, Guy (1993) Blelloch, Guy "NESL: A Nested Data- Parallel Language" CMU-CS-93-129, April 1993. CiteSeer Abstract
  • Blelloch, G. (1994) Blelloch, G. E., Chatterjee, S., Hardwick, J. C., Sipelstein, J., and Zagha, M. Implementation of a portable nested data-parallel language. Journal of Parallel and Distributed Computing 21, 1 (Apr. 1994), 4-14. CiteSeer Extract: NESL and Nested Parallelism
  • Blelloch, Guy E.; Sipelstein, Jay; Hardwick, Jonat (1995) Blelloch, Guy E.; Sipelstein, Jay; Hardwick, Jonathan C.; Zagha, Marco "NESL User's Manual" 1995
  • Blelloch G. and Greiner. J. (1996) Blelloch G. and Greiner. J. "A provable time and space efficient implementation of NESL" CiteSeer Abstract
          in [ICFP 1996] (1996) Proceedings of the ACM SIGPLAN International Conference on Functional Programming, May 1996.
  • Skillicorn, David B. and Talia, Domenico (1998) Skillicorn, David B. and Talia, Domenico "Models and languages for parallel computation" pp123-169
          in [ACM] (1998) [ACM] ACM Computing Surveys (CSUR) 30(2) June 1998
    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder