Parallel Programming in Split-C

David E. Culler, Andrea Dusseau, Seth Copen Goldstein,
Arvind Krishnamurthy, Steven Lumetta, Thorsten von Eicken,
and Katherine Yelick

We introduce the Split-C language, a parallel extension of C
intended for high performance programming on distributed
memory multiprocessors, and demonstrate the use of the
language in optimizing parallel programs.  Split-C provides
a global address space with a clear concept of locality and
unusual assignment operators.  These are used as tools to
reduce the frequency and cost of remote access.  The language
allows a mixture of shared memory, message passing, and data
parallel programming styles while providing efficient access
to the underlying machine.  We demonstrate the basic language
concepts using regular and irregular parallel programs and
give performance results for various stages of program
optimization.