Current Scheduling Algorithm in Nimrod/G: Deadline based, and tries to meet using low cost resources.
M - Resources, N - Jobs, D - deadline
Note: Cost of any Ri is less than any of Ri+1 …. Or Rm
- RL: Resource List need to be maintained in increasing order of cost
Ct - Time when accessed (Time now)
Ti - Job runtime (average) on Resource i (Ri) [updated periodically]
- Ti is acts as a load profiling parameter.
Ai - number of jobs assigned to Ri , where:
- Ai = Min (No.Unassigned Jobs, No. Jobs Ri can complete by remaining deadline)
- No.UnAssignedJobsi = Diff( N, (A1+…+Ai-1))
- JobsRi consume = RemainingTime (D- Ct) DIV Ti
ALG: Invoke Job Assignment() periodically untile all jobs done.
- Job Assignment():
- Establish ( RL, Ct , Ti , Ai ) dynamically.
- For all resources (I = 1 to M) { Assign Ai Jobs to Ri , if required}