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 data files in a memory/disk, wherein each of the plurality of computation jobs requires a set of data files for processing, the method comprising: sub-grouping the DPUs into a plurality of data processing unit (DPU) sets, each DPU set comprising a sub-group of the DPUs in the grid computing system and a core DPU elected from among the sub-group of DPUs based on a pre-determined criteria, the core DPU carrying information relating to data files stored at each DPU within the corresponding DPU set; receiving a computation job from the plurality of computation jobs at a scheduling DPU; scheduling the computation job for execution within a first DPU set based on a first scheduling criteria, wherein the step of scheduling for execution within the first DPU set is carried out by the scheduling DPU; scheduling the computation job for execution at a first DPU within the first DPU set based on a second scheduling criteria, wherein the step of scheduling for execution at the first DPU is carried out by a core DPU corresponding to the first DPU set; storing at the scheduling DPU, a history table comprising information about at least the first DPU set and data files present within the first DPU set; and storing at each core DPU, a demand matrix comprising information relating to computation jobs scheduled for execution within the corresponding DPU set and information relating to data files present at each DPU within the corresponding DPU set.