| 78 | | There are |
| 79 | | may bound credit |
| 80 | | redundancy |
| 81 | | exact match |
| 82 | | exact computation |
| 83 | | sixtrack example: compiler, |
| 84 | | compiler options (disable DP hardware), |
| 85 | | numerical libraries |
| 86 | | homogeneous redundancy |
| 87 | | exact checkpointing |
| 88 | | fuzzy matching |
| | 80 | |
| | 81 | With this variant of replication, |
| | 82 | once an instance of a job has been sent to a host, |
| | 83 | additional instances are sent only to hosts that are "numerically equivalent" |
| | 84 | (i.e. that will return bit-identical results). |
| | 85 | |
| | 86 | The notion of "numerical equivalence" depends on your application |
| | 87 | and how it was compiled. |
| | 88 | BOINC supplies two pre-defined equivalence relations, "coarse" and "fine". |
| | 89 | Use either of these ("coarse" is preferable, if it's fine enough for your app) |
| | 90 | or define your own if needed. |
| | 91 | |
| | 92 | == Adaptive replication == |
| | 93 | |
| | 94 | This is a refinement of the replication policy. |
| | 95 | It randomly decides whether to replicate jobs, |
| | 96 | based on the measured error rate of hosts. |
| | 97 | If the first instance of a job is sent to a host with a low error rate, |
| | 98 | then with high probability no further instances will be sent. |
| | 99 | |
| | 100 | Adaptive replication is independent of the comparison policy; |
| | 101 | you can use it with either bitwise comparison, |
| | 102 | fuzzy comparison, or homogeneous replication. |