Shared Memory Paradigms
Physical shared memory cannot be implemented on massively parallel computers, but it is a useful abstraction, even if the implementation it hides is distributed.
A useful approach for massively parallel computers is to provide a high-level abstraction of shared memory.
One way to do this is called virtual shared memory. The programming language presents a view of memory as if it is shared, but the implementation may or may not be.
The other way is to build a system based on a useful set of sharing primitives.