7 | | 0) app versions now include avg_ncpus, coprocessor usage, and |
8 | | a FLOPS estimate (this defaults to the CPU benchmark, |
9 | | but for GPU and multithread apps it will be different). |
10 | | This info is sent from the server. |
11 | | |
12 | | 1) Estimating the duration of unstarted jobs: |
13 | | jobs are now associated with specific app versions. |
14 | | The estimated duration of an unstarted job is the WU's |
15 | | FLOP estimate divided by the app version's FLOPS, |
16 | | scaled by the duration correction factor. |
17 | | |
18 | | 2) Duration correction factor: this is now based on elapsed time |
19 | | (i.e. wall time during which the job has been running) rather than CPU time. |
20 | | Yes, this is affected by non-BOINC CPU load; that's as it should be. |
21 | | |
22 | | 3) "CPU efficiency" is no longer maintained; it's subsumed in DCF. |
23 | | |
24 | | 4) Estimating the duration of running jobs: |
25 | | this is a weighted average of static and dynamic estimates. |
26 | | The dynamic estimate is now based on elapsed time rather than CPU time. |
27 | | So if a GPU job has been running for 5 min, is 25% done, |
28 | | and has used 1 min of CPU, its dynamic estimate is 20 min (not 4 min). |
29 | | |
30 | | 5) round-robin simulation: this was modified to reflect multi-thread |
31 | | and coproc apps (e.g., if the host has 1 GPU, only one coproc app |
32 | | can run at a time). |
33 | | If CPUs are idle because coprocs are in use, |
34 | | don't count it towards CPU shortfall. |
35 | | |
36 | | 6) scheduler_cpus() and enforce_schedule() take coprocs and |
37 | | avg_ncpus into account. They try to keep GPUs busy if possible. |
| 7 | 1. app versions now include avg_ncpus, coprocessor usage, and |
| 8 | a FLOPS estimate (this defaults to the CPU benchmark, |
| 9 | but for GPU and multithread apps it will be different). |
| 10 | This info is sent from the server. |
| 11 | 1. Estimating the duration of unstarted jobs: |
| 12 | jobs are now associated with specific app versions. |
| 13 | The estimated duration of an unstarted job is the WU's |
| 14 | FLOP estimate divided by the app version's FLOPS, |
| 15 | scaled by the duration correction factor. |
| 16 | 1. Duration correction factor: this is now based on elapsed time |
| 17 | (i.e. wall time during which the job has been running) rather than CPU time. |
| 18 | Yes, this is affected by non-BOINC CPU load; that's as it should be. |
| 19 | 1. "CPU efficiency" is no longer maintained; it's subsumed in DCF. |
| 20 | 1. Estimating the duration of running jobs: |
| 21 | this is a weighted average of static and dynamic estimates. |
| 22 | The dynamic estimate is now based on elapsed time rather than CPU time. |
| 23 | So if a GPU job has been running for 5 min, is 25% done, |
| 24 | and has used 1 min of CPU, its dynamic estimate is 20 min (not 4 min). |
| 25 | 1. Round-robin simulation: this was modified to reflect multi-thread |
| 26 | and coproc apps (e.g., if the host has 1 GPU, only one coproc app |
| 27 | can run at a time). |
| 28 | If CPUs are idle because coprocs are in use, |
| 29 | don't count it towards CPU shortfall. |
| 30 | 1. scheduler_cpus() and enforce_schedule() take coprocs and |
| 31 | avg_ncpus into account. They try to keep GPUs busy if possible. |