UC is a data-parallel extension of C designed for scientific computati
ons on synchronous and asynchronous parallel architectures. The primar
y constructs of the language include sets, reductions, and parallel an
d asynchronous composition. Its communication model is that of a globa
lly addressable memory, with no syntactic distinction between local an
d remote data references, Unlike most existing data-parallel languages
, UC programs may be synchronized at multiple levels of granularity, f
rom a strict expression-level synchronization to a coarser statement o
r function-level synchronization. This paper describes the language an
d its implementation on the Connection Machine CM-2. Experimental meas
urements that compare the performance of the UC compiler with that of
programs written in commercial parallel languages such as CM Fortran,
C, and *Lisp are also presented. (C) 1995 Academic Press, Inc.