| 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. |