Changes between Version 7 and Version 8 of ClientSched
- Timestamp:
- Nov 21, 2011, 12:29:41 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ClientSched
v7 v8 11 11 12 12 Note: a '''processor type''' is either CPU or a GPU vendor. 13 There may be multiple '''instances'' of each processor type.13 There may be multiple '''instances''' of each processor type. 14 14 15 15 The goals of these policies are (in descending priority): … … 45 45 * For each processor type, the number of currently idle instances. 46 46 47 * For each processor type, the '''saturated ''': the amount of time47 * For each processor type, the '''saturated time''': the amount of time 48 48 that all instances are busy. 49 49 50 * For each task T, a flag T.deadline_missindicating whether the task50 * For each task T, a flag '''T.deadline_miss''' indicating whether the task 51 51 missed its deadline in the simulation. 52 52 … … 64 64 recently by the project's tasks relative to its resource share. 65 65 66 The '''scheduling priority'''of a project P is computed as66 The scheduling priority of a project P is computed as 67 67 68 68 {{{ … … 94 94 whenever the saturated period is less than min_buffer. 95 95 * Adjust SP(P) based on the amount of work currently queued 96 * Ask the fetchable project with greatest SP(P) for "shortfall" seconds of work. 96 * Ask the fetchable project with greatest SP(P) for work. 97 We request enough jobs to fill the number of idle instances, 98 and to use at least "shortfall" instance-seconds. 97 99 * Whenever a scheduler RPC to project P is done 98 100 (e.g. to report results) and SP(P) is greatest among fetchable projects 99 101 for a given processor type, request "shortfall" seconds of that type. 100 102 103 === Per-processor-type backoff === 104 105 The client keeps track of whether projects have work for particular processor types, 106 so that it doesn't keep asking them for types of work they don't have. 107 108 To do this, it maintains a separate backoff timer per (project, resource type). 109 The backoff interval is doubled up to a limit (1 day) 110 whenever we ask for work of that type and don't get any work; 111 it's cleared whenever we get a job of that type. 112 Note: if we decide to ask a project for work for resource A, 113 we may ask it for resource B as well, even if it's backed off for B. 114 115 This mechanism is independent of the overall backoff timer for each project, 116 which is triggered by requests from the project, RPC failures, job errors and so on.