'''A Parallel Programming Language'''

It integrates various ideas from 
* the theory community -- parallel algorithms
* the languages community --functional languages 
* the system's community -- many of the implementation techniques
* 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'' 

-- http://www.cs.cmu.edu/~scandal/nesl.html
----

'''Programming Parallel Algorithms'''
.
Describes and motivates the two main ideas behind NESL, ''nested data parallelism'' and the ''language based performance''
model  It appears in CACM199603  
* http://www.cs.cmu.edu/~scandal/cacm.html

----

'''Implementation of a Portable Nested Data-Parallel Language'''

Outlines the current implementation of NESL and gives some performance numbers on a variety of parallel machines.  It appears in JPDC199411
* http://www.cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/papers/nesl-ppopp93.html

----


'''NESL: A Nested Data-Parallel Language'''

The language definition, including a complete list of functions.  It does not contain the operational
semantics
* http://www.cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/papers/CMU-CS-95-170.html

----

'''NESL User's Manual''' 

Describes how to set up the NESL environment and how to use the various features in NESL (such as tracing, profiling and using
remote machines)
* http://www.cs.cmu.edu/~scandal/html-papers/nesl-user-manual/user.html

----

'''A Provable Time and Space Efficient Implementation of NESL''' 

Includes the operational semantics of NESL and a proof that the work and depth
bounds can be mapped into running time on various machine models.
* http://www.cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/papers/icfp96-nesl.html
----
NESL release 3.1 (November, 1995)

Nesl 3.1 is available in the file 
* http://www.cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/code/nesl/nesl.tar.gz 

Once copied over to your machine, it can be unpacked by running: 

	gunzip -c nesl.tar.gz | tar -xf -

This will create a subdirectory nesl in the current directory with this structure:

The files in these directories are also available individually. 
  BUILD           Directions on how to build NESL
  COPYRIGHT       Copyright information
  Makefile        Used for building the release
  README          This file
  bin/	         
    runnesl       The NESL executable
    vinterp.*     The VCODE interpreter, for various architectures
    xneslplot     X11 interface used for NESL graphics
    foreground.*  Scripts for executing VCODE from NESL in the foreground
    background.*  Scripts for executing VCODE from NESL in the foreground
  cvl/
    cm2/	  Source code for the CM-2 version of CVL
    cm5/	  Source code for the CM-5 version of CVL 
    cray/	  Source code for the CRAY version of CVL
    mpi/	  Source code for the MPI version of CVL
    serial/	  Source code for the serial version of CVL
  doc/		  
    cvl.ps	  The CVL manual
    manual.ps	  The NESL manual
    user.ps	  The NESL user's guide
    vcode-ref.ps  The VCODE manual
  emacs/          NESL editing mode for GNU Emacs
  examples/       Collection of NESL examples
  include/	  cvl.h include file
  lib/		  
    libcvl.a	  The CVL library
  neslseqsrc/     Source code for stand-alone NESL
  neslsrc/        Source code for NESL
  release.notes   List of changes since the last release
  utils/          Source code for xneslplot
  vcode/          Source code for the VCODE interpreter

  
----
CategoryProgrammingLanguage