
724 CHAPTER 9 Hardware/Software Trade-Offs
A more flexible language- and compiler-based approach is taken by the Split-C
language (Culler et al. 1993). Here, the user explicitly specifies arrays as being local
or global (shared) and for global arrays specifies how they should be laid out among
physical memories. Computation may be assigned independently of the data layout,
and references to global arrays are converted into messages by the compiler or run-
time system based on the layout. The decoupling of computation assignment from
data distribution makes the language much more flexible than an owner computes
rule for load-balancing irregula ...