Changes between Version 17 and Version 18 of GpuWorkFetch
- Timestamp:
- Dec 29, 2008, 10:53:34 AM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GpuWorkFetch
v17 v18 26 26 This document proposes a modification to the work-fetch system that solves these problems. 27 27 28 For simplicity, the design assumes that there is only one GPU type (CUDA).29 It is straightforward to extend the design to handle additional GPU types.28 For simplicity, the design considers only one GPU type (CUDA). 29 However, it is straightforward to extend the design to handle additional GPU types. 30 30 31 31 == Terminology == … … 62 62 New abstraction: '''processing resource''' or PRSC. 63 63 There are two processing resource types: CPU and CUDA. 64 65 The notion of long-term debt 64 66 65 67 === Per-resource-type backoff === … … 79 81 This is stored in an object of class PRSC_WORK_FETCH. 80 82 81 Data members of PRSC_WORK_FETCH 83 Data members of PRSC_WORK_FETCH: 82 84 83 85 '''ninstances''' … … 122 124 It has the following "persistent" members (i.e., saved in state file): 123 125 124 '''double long_term_debt*'''125 126 126 '''backoff timer'''*: how long to wait until ask project for work specifically for this PRSC; 127 127 double this any time we ask for work for this rsc and get none … … 143 143 }}} 144 144 145 Each project has the following work-fetch-related state: 146 147 '''double long_term_debt*''': the amount of processing (including GPU, but expressed in terms of CPU seconds) owed to this project. 148 145 149 === debt accounting === 146 150 {{{ 147 for each resource type 148 R.accumulate_debt(dt) 151 for each resource type R 152 for each project P 153 if P is not backed off for R 154 P.R.LTD += share 155 for each running job J, project P 156 for each resource R used by J 157 P.R.LTD -= share*dt 149 158 }}} 150 159 … … 209 218 clear backoff for the PRSC of each returned job 210 219 }}} 220 211 221 == Scheduler changes == 212 222 {{{