1. A method for memory access, comprising: in a cluster of computers linked by a network, each of the computers comprising a processor, a local random-access memory (RAM), and a network interface controller (NIC) connected to the network, defining for a given computer in the cluster a respective physical memory range comprising a local memory range within the local RAM of the given computer and a remote memory range allocated to the given compute within the local RAM of at least one other computer in the cluster; and upon receiving a request from the processor of the given computer to execute a memory operation on data at a given address in the respective physical memory range, executing the operation on the data in the local RAM of the given computer when the given address is valid in the local memory range, and otherwise fetching the data from the given address in the remote memory range to the local memory range before executing the operation on the data.