Implementation of a Portable Nested Data-Parallel Language

Guy E. Blelloch, Siddhartha Chatterjee, Jonathan C. Hardwick, Jay Sipelstein, and Marco Zagha.
Journal of Parallel and Distributed Computing, 21(1), April 1994.
An initial version was published in, 4th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, May 1993.

PPoPP version: 73k compressed postscript

Abstract: This paper gives an overview of the implementation of NESL, a portable nested data-parallel language. This language and its implementation are the first to fully support nested data structures as well as nested data-parallel function calls. These features allow the concise description of parallel algorithms on irregular data. In addition, they maintain the advantages of data-parallel languages: a simple programming model and portability. The current NESL implementation is based on an intermediate language called VCODE and a library of vector routines called CVL. It runs on the Connection Machines CM-2, the Cray Y-MP C90, and serial machines. We compare initial benchmark results of NESL with those of machine-specific code on these machines for three algorithms: least-squares line-fitting, median finding, and a sparse- matrix vector product. These results show that NESL's performance is competitive with that of machine-specific code for regular dense data, and is often superior for irregular data.

@article{nesl-impl-94,
        author = "Guy~E. Blelloch and Siddhartha Chatterjee and 
		Jonathan~C. Hardwick and Jay Sipelstein and Marco Zagha",
        title = "Implementation of a Portable Nested Data-Parallel Language",
       	journal = "Journal of Parallel and Distributed Computing",
	volume = 21,
	number = 1,
        pages = "4--14",
	month = apr,
	year = 1994}

@inproceedings{nesl-impl-93,
	author = "Guy~E. Blelloch and Siddhartha Chatterjee and 
		  Jonathan~C. Hardwick and Jay Sipelstein and Marco Zagha",
	title = "Implementation of a Portable Nested Data-Parallel Language",
	booktitle = "Proceedings 4th {ACM} {SIGPLAN} Symposium on
		     Principles and Practice of Parallel Programming", 
	pages = "102--111",
	address = "San Diego",
	month = may,
	year = 1993 }