1. A method for scheduling processing of a plurality of computation jobs in a grid computing system, the grid computing system comprising a plurality of data processing units (DPUs) that are interconnected, each of the plurality of DPUs storing a set of data files in a memory/disk, wherein each of the plurality of computation jobs need a set of input data files for processing, the method comprising: receiving a first computation job from the plurality of computation jobs at a scheduling data processing unit (DPU); scheduling the first computation job at a first set of DPUs from a plurality of sets of DPUs in the grid computing system based on a first scheduling criteria, wherein the plurality of DPUs in the grid computing system are sub-grouped to form the plurality of sets of DPUs, each of the plurality of sets of DPUs being headed by a core DPU, and wherein a first core DPU carries information comprising sets of data files present with each DPU in the first set of DPUs; scheduling the first computation job at a first DPU from the first set of DPUs based on a second scheduling criteria, by the first core DPU; storing information about the first set of DPUs and data files present at the first set of DPUs in a history table, wherein the history table is present at the scheduling DPU; and storing information about the first DPU and the first computation job in a demand matrix, wherein the demand matrix is present at the core DPU of each of the plurality of sets of DPUs.