Split-C - UC Berkeley, CS Division
Split-C is a parallel extension of the C programming language that
supports efficient access to a global address space on current
distributed memory multiprocessors. It retains the "small language"
character of C and supports careful engineering and optimization of
programs by providing a simple, predictable cost model. This is in
stark contrast to languages that rely on extensive program
transformation at compile time to obtain performance on parallel
machines. Split-C programs do what the programmer specifies; the
compiler takes care of addressing and communication, as well as code
generation. Thus, the ability to exploit parallelism or locality is not
limited by the compiler's recognition capability, nor is there need to
second guess the compiler transformations while optimizing the program.
The language provides a small set of global access primitives and simple
parallel storage layout declarations. These seem to capture most of the
useful elements of shared memory, message passing, and data parallel
programming in a common, familiar context.
Split-C is currently implemented on the Thinking Machines Corp. CM-5,
the Intel Paragon, the IBM SP-2, and the Meiko CS-2, and is under
development on the Cray T3D. All versions are built using the Free
Software Foundation's GCC and the message passing systems available on
each machine. Faster implementations are underway for the Meiko CS-2
using the Elan libraries and for networks of workstations using Active Messages.
It has been used extensively as a teaching tool in parallel computing
courses and hosts a wide variety of applications. Split-C may also be
viewed as a compilation target for higher level parallel languages.
Available documentation for Split-C includes the following:
Download the Split-C distribution for your platform (Meiko only - other platforms soon to be added)
Related projects include:
Back to CS Division Home Page