1. A method for facilitating access to a large data store over a communications network, comprising: a) reading, by a first server, the large data store; b) allocating, by the first server, a heap of at least 100 megabytes in a first memory, and storing the data store in the heap, wherein a memory address is associated with each memory element in the heap, and wherein each memory address comprises a base address unique to the first memory and an offset value from the base address; c) receiving, by the first server, a request from a second server for a particular group of memory elements of the heap in the first memory; d) transmitting, by the first server, the particular group of memory elements of the heap in the first memory to the second server; e) allocating, by the second server, space in a second memory and storing in the second memory the particular group of memory elements received from first server; f) transmitting, by the second server, memory addresses currently associated with each of the memory elements in the particular group to a graphics processing unit communicatively coupled with the second server; g) calculating, by the graphics processing unit, new memory addresses for each of the memory elements in the particular group by adding a new base address unique to the second memory to the offset value of each memory address; and h) transmitting, by the graphics processing unit, the new memory addresses for each of the memory elements in the particular group to the second memory, wherein the new memory addresses are used by the second server to access the memory elements in the particular group.