Co-array Fortran and UPC
These languages have distributed data built in
Addresses are two-dimensional: image and offset
- images are identical name spaces, one per “node”
- subscripting is used to specify which image
- the programmer controls data layout and scheduling
Programs directly load and store remote data
- just as for local data
- data types are handled by the compiler, not the library
- the subscripting allows arbitrary communication
These are significantly higher level than MPI
Shmem is a potential implementation path
- but of course native implementations are best