1. A system for scheduling jobs in a cluster of compute nodes, said system comprising: at least one processor programmed to: receive a job with an unknown resource requirement profile, the job including a plurality of tasks; schedule execution of some of the plurality of tasks on compute nodes of the cluster with differing capability profiles; receive timing information regarding execution time of the scheduled tasks; infer a resource requirement profile for the job based on the received timing information and the differing capability profiles; and schedule execution of remaining tasks of the job on the compute nodes of the cluster using the resource requirement profile.