A UNIFORM MEMORY MODEL FOR DISTRIBUTED DATA OBJECTS ON PARALLEL ARCHITECTURES
05 april 2005, version 2.0: papers/ecmwf2004/ecmwf2004-2.tex.
Most modern architectures employ a hybrid memory model where memory is shared across some processors and distributed among others (clusters of SMPs). We describe a syntax for expressing memory dependencies in grid codes that takes the same form on distributed or shared memory, and can be optimally implemented on either, and on any hybrid layering thereof. This syntax can be applied to scalars, arrays or any other distributed data object. The syntax may be implemented on any of several current parallel programming standards, and also provides a way forward to future higher-level libraries.