Effective support of these applications in such an environment suggests the concept of treating the entire collection of resources as a metacomputer that would present a single, seamless interface to the user. Applications would be executed on a virtual machine (whose binding to physical resources may vary dynamically during the lifetime of any particular job) allocated according to specified performance and assurance constraints. ... Potential advantages of the metacomputer include not only its tremendous aggregate performance but also the ability to adapt during crises. ... It will be extraordinarily difficult for users to exploit it directly. To minimize this barrier, a shared memory programming model accessible from familiar programming languages needs to be provided.

--DRPA BAA, 1996.