Introduction to Split-C
Introduction to Split-C
Split-C is a parallel extension of the C programming language
primarily intended for distributed memory multiprocessors. It is
designed around two objectives. The first is to capture certain
useful elements of shared memory, message passing, and data parallel
programming in a familiar context, while eliminating the primary
deficiencies of each paradigm. The second is to provide efficient
access to the underlying machine, with no surprises. (This is similar
to the original motivation for C---to provide a direct and obvious
mapping from high-level programming constructs to low-level machine
instructions.) Split-C does not try to obscure the inherent
performance characteristics of the machine through sophisticated
transformations. This combination of generality and transparency
of the language gives the algorithm or library designer a concrete
optimization target.
This document describes the central concepts in Split-C and provides a
general introduction to programming in the language. Both the
language and the document are undergoing active development, so please
view the document as working notes, rather than the final language
definition.