1. A system comprising: one or more processing devices; and one or more computer-readable storage media storing instructions which, when executed by the one or more processing devices, configure the one or more processing devices to: identify an outlier task from a plurality of tasks of a phase of a job based on corresponding runtimes of the plurality of tasks, the outlier task being identified while the outlier task is executing and taking longer to complete than other tasks from the phase of the job, wherein the plurality of tasks share the same code; make a determination whether the outlier task has more input data to process than the other tasks of the phase of the job; in a first instance when the determination is that the outlier task has more input data to process than the other tasks of the phase of the job, continue to let the outlier task execute without scheduling a copy of the outlier task responsive to the determination; and in a second instance when the determination is that the outlier task does not have more input data to process than the other tasks of the phase of the job compare an estimated remaining time for the outlier task to complete to an estimated time for the copy of the outlier task to complete, and when the estimated time for the copy of the outlier task to complete is less than the estimated remaining time for the outlier task to complete, schedule the copy of the outlier task.