![]() |
![]() |
|
Split-C is an extension of the C programming language offering a global address space. It assumes a single program multiple data (SPMD) model in which each of the CPU's has a single thread of control and the memory model is a two-dimensional array, where one dimension is the set of CPU's, the other dimension is each processors local address space. Accesses to memory locations on a remote node are compiled to code fetching or putting data from or to that remote processor. Split-C allows to overlap communication of communication and computation by using split phase operations (called gets, puts and stores). Split-C is available on a variety of supercomputers, including the TMC CM-5, the Meiko CS-2, Intel Paragon and IBM SP-2 machines, as well as for networks of workstations. Most implementations, including one of our SCI implementations of Split-C, are based on Active Messages. We also have a second implementation of Split-C that directly uses the shared memory features of SCI to access remote memory, much like the Cray T3D implementation.
We are working on a more efficient SWTLB version of Split-C and start working on the issue of hybrid SMP-Clusters (CLUMPS) and non-dedicated computing, in particular co-scheduling.