1. A method of scheduling, comprising: receiving a task of a job; configuring resource amounts for the task in at least two resource dimensions respectively, wherein each of the resource dimensions represents a resource available for configuring; distributing the task along with information about the resource amounts configured for the task in the resource dimensions to available resources; executing the task using the available resources; selecting tasks respectively from a plurality of jobs as candidate tasks to be distributed to the available resources; receiving the candidate tasks; configuring resource amounts for each of the candidate tasks in at least two resource dimensions respectively, wherein each of the resource dimensions represents a resource available for configuring; estimating both a gain and a cost of waiting to generate a scheme for distributing one or more of the candidate tasks to the available resources until after one or more currently executing tasks have completed; generating the scheme for distributing the one or more of the candidate tasks to the available resources after the one or more currently executing tasks have completed according to the resource amounts configured for each of the one or more of the candidate tasks in the resource dimensions when the estimated gain exceeds the estimated cost; generating the scheme for distributing the one or more of the candidate tasks to the available resources while the one or more currently executing tasks are executing according to the resource amounts configured for each of the one or more of the candidate tasks in the resource dimensions when the estimated gain is less than or equal to the estimated cost; distributing the one or more of the candidate tasks along with information about the resource amounts configured for the one or more of the candidate tasks to the available resources according to the generated scheme; and executing the one or more of the candidate tasks using the available resources.