1. A computer program product for allocating parallel and independent data tasks, the computer program product comprising: a non-transitory 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 that measures a cost of completing a job at a particular time; and computer readable program code configured to determine a schedule of the plurality of parallel and independent data tasks according to penalty function costs, wherein determining the schedule comprises: choosing scheduling metrics by a system administrator on a cluster-wide basis, or by individual users on a job-by-job basis, such scheduling metrics being chooseable from a menu comprising response time, makespan, stretch and any metric which reward or penalizes job completion times as compared to deadlines, solving an aggregate objective function of all the penalty function costs, the aggregate objective function being one of a minimum sum of the penalty function costs resulting from completion time of last independent data tasks of various jobs and a minimum maximum of the penalty function costs resulting from completion time of last independent data tasks of various jobs, and receiving a selection input from a user that provides the selection input to an input device coupled by an input/output interface to a central processor configured to execute the computer program product, the selection input specifying one of the minimum sum of the penalty function costs and the minimum maximum of the penalty function costs, minimum sum optimization being used to solve problems where an average case job performance is based upon minimizing the average of one of response time, stretch, lateness, tardiness and service level agreements of the jobs and minimum maximum optimization being used to solve problems where a worst case job performance is based upon minimizing the maximum of one of response time, stretch, lateness, tardiness and service level agreements of the jobs.