1. A system comprising: a plurality of servers, each including one or more central processing units (CPUs) and local memory; a memory server remotely located from the plurality of servers and including a pool of remote memory shared by the plurality of servers across a connection, wherein each of the plurality of servers are independent from each other and the memory server; and a remote memory controller, wherein the remote memory controller allocates remote memory from the pool of memory to the plurality of servers, wherein a physical address space for an operating system (OS) running on each of the plurality of servers includes an aggregation of its allocated remote memory and its local memory.