Title :
Vcode: a data-parallel intermediate language
Author :
Blelloch, Guy E. ; Chatterjee, Siddhartha
Author_Institution :
Sch. of Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, USA
Abstract :
A description is given of Vcode, a data-parallel intermediate language. Vcode is designed to allow easy porting of data-parallel languages to a wide class of parallel machines, and for experimenting with compiling such languages. The design goal was to define a simple language whose primitives can be implemented efficiently but that is still powerful enough to express the features of existing data-parallel languages. Vcode 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. The design decisions are discussed, and it is shown how three data-parallel languages-C*, Fortran 8×, and Paralation Lisp-can be mapped onto Vcode. The issues encountered in implementing Vcode on different kinds of parallel machines, as well as specific techniques for implementing it on the Connection Machine, are examined
Keywords :
parallel languages; program compilers; C*; Connection Machine; Fortran 8×; Paralation Lisp; Vcode; compiling; data-parallel intermediate language; nested parallelism; parallel machines; segmented instructions; Application software; Computer science; DNA; Hypercubes; Parallel languages; Parallel machines; Parallel processing; Parallel programming; Sequences; Very large scale integration;
Conference_Titel :
Frontiers of Massively Parallel Computation, 1990. Proceedings., 3rd Symposium on the
Conference_Location :
College Park, MD
Print_ISBN :
0-8186-2053-6
DOI :
10.1109/FMPC.1990.89498