1. A computer program product for allocating parallel, independent data tasks, the computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising: computer readable program code configured to receive a plurality of parallel and independent data tasks, each of the plurality of parallel and independent data tasks having a penalty function; and computer readable program code configured to determine a schedule of the plurality of parallel and independent data tasks according to the penalty functions, wherein determining a schedule comprises solving an aggregate objective function of all the penalty functions.