1. A method comprising: accepting, using a processor, a job, the job comprising a plurality of phases including map and reduce phases, each of the phases comprising at least one task; determining, using a processor, for each of a plurality of slots corresponding to the reduce phases, a fetching cost associated with receipt of one or more of the tasks; grouping, using a processor, the slots into a plurality of sets; for each of the sets, setting, using a processor, upper and lower numerical bounds for guiding receipt of one or more of the tasks, the upper and lower bounds for each set being associated with the determined fetching costs; estimating, using a processor, an intermediate data size of the job; determining, using a processor, a ratio of the intermediate data size to a number of reduce tasks associated with the job; determining, using a processor, a set wherein the ratio falls between the upper and lower numerical bounds associated with the set; and assigning, using a processor, the one or more of the tasks to the determined set wherein the ratio falls between the upper and lower numerical bounds.