1. A system for managing shared memory used by a plurality of compute nodes, comprising: a shared globally addressable memory to enable access to shared data by the plurality of compute nodes; a memory interface to process memory requests sent to the shared globally addressable memory from the plurality of compute nodes; a memory write module for the memory interface to allocate memory locations in the shared globally addressable memory and write read-only data to the globally addressable memory from a writing compute node; and a read module for the memory interface to map read-only data in the globally addressable shared memory as read-only for subsequent accesses by the plurality of compute nodes.