| | 10 | |
| | 11 | == Tools == |
| | 12 | |
| | 13 | The following tools may be useful: |
| | 14 | |
| | 15 | * The [ClientSim BOINC client simulator]. |
| | 16 | This models a single client attached to one or more projects. |
| | 17 | It's useful for studying client scheduling policies. |
| | 18 | * The [http://gcl.cis.udel.edu/projects/emboinc/index.php EmBOINC] BOINC server emulator. |
| | 19 | This models a BOINC server and a population of clients. |
| | 20 | It's useful for studying server scheduling policies. |
| | 21 | * The [http://boinc.berkeley.edu/trac/browser/trunk/boinc/sched/sched_driver.cpp scheduler driver] |
| | 22 | can be used to measure the maximum throughput (jobs per second) of a BOINC back end. |
| 135 | | |
| 136 | | == Estimating job completion times in a heterogeneous environment == |
| 137 | | |
| 138 | | Accurate job completion time estimates are essential to BOINC. |
| 139 | | Underestimates can waste computation, |
| 140 | | and overestimates can cause resource idleness. |
| 141 | | BOINC's current mechanisms for estimating job completion times |
| 142 | | have various shortcomings: |
| 143 | | a) they require projects to estimate job FLOPS requirements in advance, |
| 144 | | and to estimate the FLOPS performance of applications on particular hosts; |
| 145 | | most projects don't have the ability or willingness to provide |
| 146 | | accurate estimates; |
| 147 | | b) they are based on peak hardware performance |
| 148 | | (e.g., benchmark values), and actual application performance |
| 149 | | can be wildly different, especially for multi-threaded and GPU applications. |
| 150 | | |
| 151 | | The project is to design, implement, and study a system that automatically |
| 152 | | estimates job completion times on heterogeneous hosts, |
| 153 | | and that provides estimates of the actual number of FLOPS performed |
| 154 | | by a given job. |