1. A method for processing using a shared file comprising: creating a plurality of mmaps between a shared file and a plurality of address spaces, wherein each of the plurality of mmaps maps at least a portion of the shared file to one of the plurality of address spaces, wherein each of the plurality of address spaces is associated with one of a plurality of processors, and wherein creating the plurality of mmaps comprises: identifying, for the plurality of processors, a global maximum offset in a shared memory, wherein the global maximum offset is maximum of a plurality of maximum offsets required by the plurality of processors to access the shared file; determining whether the global maximum offset corresponds to a memory location in the shared memory in which the shared filed is stored; and expanding the shared file to encompass the memory location corresponding to the global maximum offset when the global maximum offset does not correspond to the memory location in the shared memory in which the shared file is stored; transferring, in parallel, data between the shared file and the plurality of address spaces using the plurality of mmaps associated with the plurality of address spaces; processing the data in parallel by the plurality of processors to obtain a result, wherein the plurality of processors access the data from the plurality of address spaces; and storing the result in the shared memory.