We have a single benchmark machine, its most important component is its processor: a Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz. The machine’s OS is Linux. Here are the steps that we use to determine points for a project:
- Take a WU from a project and run it on the benchmark machine until it finishes.
- Measure the time it took to complete. Base credit awarded for the WU is then just a scaling factor multiplied by this time.
- The timeout and deadline values are also simple functions of the time it took to complete. These are set primarily to give a donor a reasonable amount of time to finish a WU, but short enough so that any WU that gets sent out but not processed (e.g. donor quits FAH, forgets to re-start that WU, their computer dies, etc) can be retrieved and sent out again in a reasonable amount of time. Thus these values are set depending on what kind of hardware a project is being run on (uniprocessor, SMP, GPU) and how long the WU took to finish on the benchmark machine.
- The k-factor, a coefficient in awarding bonus points, is currently set to a baseline value of 0.75, but may vary depending on the scientific value of a project.
The Folding@home software on your computer calculates Total Points as follows:
final_points = base_points * max(1, sqrt( k * deadline_length / elapsed_time))
Note that the max(1, …) ensures that final_points are never lower than base_points, deadline_length is the deadline aka final deadline, and elapsed _time is the length of time from when the WU was assigned, to when it was uploaded, including transit time. Deadline_length and Elapsed_time are measured in days to one decimal point.
PPD is calculated as follows:
PPD = 14.4 * base_points * max(1, sqrt( 14.4 * k * Expiration / TPF)) / TPF
Note that TPF is in minutes, in decimal form, not time format.
Note that GPU projects are now being benchmarked on the same machine, but using that machine’s CPU. By using the same hardware, we want to preserve our goal of “equal pay for equal work”. Our GPU methods have advanced to the point such that, with GPU FAHCore 17, we can run any computation that we can do on the CPU on the GPU. Therefore we’ve unified the benchmarking scheme so that both GPU and CPU projects use the same “yardstick”, which is our i5 benchmark CPU.