VCODE: A Data-Parallel Intermediate Language

Guy E. Blelloch, and Siddhartha Chatterjee.
Frontiers of Massively Parallel Computation, October 1990.

50k compressed postscript

Abstract: This paper describes VCODE, a data-parallel intermediate language. VCODE is designed to allow easy porting of data-parallel languages, such as C*, Paralation-Lisp, and Fortran 8x, to a wide class of parallel machines, and for experimenting with compiling such languages. Our design goal was to define a simple language whose primitives can be implemented efficiently, but is still powerful enough to express the features of existing data-parallel languages. It contains about 50 instructions, most of which manipulate arbitrarily long vectors of atomic values, and includes a set of segmented instructions that are crucial for implementing data-parallel languages that permit nested parallelism, such as Paralation-Lisp and CM-Lisp. An initial version of a VCODE interpreter has been implemented on the Thinking Machines Corporation Connection Machine, the CRAY Y-MP, the Encore Multimax and several uniprocessor machines. The paper outlines the VCODE language, discusses many of the design issues, illustrates how data-parallel languages can be mapped onto it, and describes how it can be implemented on massively parallel machines.

@inproceedings{vcode,
	author = "Guy~E. Blelloch and Siddhartha Chatterjee",
	title = "{VCODE}: A Data-Parallel Intermediate Language",
	booktitle = "Proceedings Frontiers of Massively Parallel Computation",
	pages = "471--480",
	month = oct,
	year = 1990 }