1. A computer readable storage medium embodying instructions executed by a processor to perform a method for scheduling a data processing job, the method comprising: receiving the data processing job comprising a plurality of computing units; combining the plurality of computing units into a plurality of sets of tasks, each set comprising tasks of about equal estimated size, and different sets having different sized tasks; and assigning the tasks to a plurality of processors using a dynamic longest processing time (DLPT) scheme.