Computation credit

From BOINC

(Difference between revisions)
Jump to: navigation, search
Line 4: Line 4:
A BOINC project gives you '''credit''' for the computations your computers perform for it.
A BOINC project gives you '''credit''' for the computations your computers perform for it.
BOINC's unit of credit, the '''Cobblestone''' (named after Jeff Cobb of SETI@home),
BOINC's unit of credit, the '''Cobblestone''' (named after Jeff Cobb of SETI@home),
-
is 1/100 day of CPU time on a reference computer that does both
+
is 1/200 day of CPU time on a reference computer that does
-
 
+
1,000 FLOPS based on the [[wikipedia:Whetstone (benchmark)|Whetstone]] benchmark
-
* 1,000 double-precision MIPS based on the [[wikipedia:Whetstone (benchmark)|Whetstone]] benchmark, and
+
-
* 1,000 VAX MIPS based on the [[wikipedia:Dhrystone|Dhrystone]] benchmark.
+
Eventually, credit may reflect network transfer and disk storage as well as computation.
Eventually, credit may reflect network transfer and disk storage as well as computation.
Line 13: Line 11:
Credit has no monetary or other value;
Credit has no monetary or other value;
it's just a measure of how much work your computers have done.
it's just a measure of how much work your computers have done.
-
 
-
== How credit is determined ==
 
-
When your computer completes a result,
 
-
BOINC determines an amount of '''claimed credit''' in one of two ways:
 
-
 
-
* In general, the claimed credit is the result's CPU time multiplied by the CPU benchmarks as measured by the BOINC software. '''NOTE:''' the BOINC software is not optimized for specific processors. Its benchmark numbers may be lower than those produced by other programs.
 
-
* Some applications determine claimed credit themselves, and report it to BOINC. This would be the case, for example, with applications that use graphics coprocessors or other non-CPU hardware.
 
-
 
-
Claimed credit is reported to a project when your computer communicates with its server. The '''granted credit''' that you receive may be different from the claimed credit, and there may be a delay of a few hours or days before it is granted. This is because some BOINC projects grant credit only after results have been [[How BOINC works#credit|validated]].
 
-
 
-
The basic hourly claim the client submits with a Result to the project servers is the sum of Whetstone plus Dhrystone values of the last Benchmark divided by about 480 (it varies slightly with processor and OS). Thus for instance (2,000 Whetstone + 6,000 Dhrystone) / 480 = 16.66 hourly claim. This exact value will not always show on the results listing of projects. It is often substituted by their own pre-assigned credit value.
 
== Credit and FLOPS ==  
== Credit and FLOPS ==  
Line 30: Line 17:
<pre>
<pre>
-
GigaFLOPs = RAC/100
+
GigaFLOPs = RAC/200
-
TeraFLOPS = RAC/100,000
+
TeraFLOPS = RAC/200,000
</pre>
</pre>
-
(Remember that a 1 GigaFLOP machine, running full time, produces 100 units of credit in 1 day).
+
(Remember that a 1 GigaFLOP machine, running full time, produces 200 units of credit in 1 day).
The credit figures for a particular day may be distorted if a project is catching up or falling behind on validation (the process or granting credit). Thus to get accurate FLOPS estimates you should look at average RAC over a period of a week or so.
The credit figures for a particular day may be distorted if a project is catching up or falling behind on validation (the process or granting credit). Thus to get accurate FLOPS estimates you should look at average RAC over a period of a week or so.
Line 49: Line 36:
'Whetstone' is a benchmark that is reported as 'Measured floating point speed'.
'Whetstone' is a benchmark that is reported as 'Measured floating point speed'.
-
Dhrystone is a benchmark used for 'Measured integer speed'.
 
Floats can have fractional parts (like 1.48283 or 3.141592);
Floats can have fractional parts (like 1.48283 or 3.141592);
-
integers are whole numbers like 1, 2, 938283 or 2004.
 
Whetstone does 8 different groups of tests (repeatedly of course),
Whetstone does 8 different groups of tests (repeatedly of course),
times how long they took to finish, and produces a number, [ops performed]/[time].
times how long they took to finish, and produces a number, [ops performed]/[time].
Line 57: Line 42:
Some of them are simple math (addition, multiplication, division)
Some of them are simple math (addition, multiplication, division)
while others compute trigonometric and exponential functions (sine, cosine, tangent, exponent).  
while others compute trigonometric and exponential functions (sine, cosine, tangent, exponent).  
-
Dhrystone checks repeated integer operations and several operating system file handling operations.
 
-
 
Neither of the tests really checks how well/fast a system can access memory,
Neither of the tests really checks how well/fast a system can access memory,
and most BOINC applications access memory a lot.
and most BOINC applications access memory a lot.
-
 
-
Here is an example of memory introducing a delay: A Pentium 4 CPU of any speed can calculate the sine of an angle in approximately 170 ticks of its internal clock. It could have performed 170 regular integer additions in this time.
 
-
 
-
But if it wanted to do an integer addition on a number somewhere out in memory
 
-
(say it was working on a table of numbers),
 
-
the CPU might have to wait as much as 260 ticks for this number to be delivered to the CPU.
 
-
So a badly timed integer+memory operation would take far longer than a sine calculation.
 
-
 
-
This is where Celeron CPUs can really slow down.
 
-
Pentium has many features to predict when the CPU might be getting memory,
 
-
and begins getting it long before the CPU actually calculates with it.
 
-
Thus there is much less delay for most memory operations.
 
-
 
== Why 'predicted time' can be wrong ==
== Why 'predicted time' can be wrong ==

Revision as of 19:00, 15 July 2010

Contents

A BOINC project gives you credit for the computations your computers perform for it. BOINC's unit of credit, the Cobblestone (named after Jeff Cobb of SETI@home), is 1/200 day of CPU time on a reference computer that does 1,000 FLOPS based on the Whetstone benchmark

Eventually, credit may reflect network transfer and disk storage as well as computation.

Credit has no monetary or other value; it's just a measure of how much work your computers have done.

Credit and FLOPS

The average FLOPS (floating point operations per second) achieved by a computer or group of computers can be estimated from its Recent Average Credit (RAC) as follows:

GigaFLOPs = RAC/200
TeraFLOPS = RAC/200,000

(Remember that a 1 GigaFLOP machine, running full time, produces 200 units of credit in 1 day).

The credit figures for a particular day may be distorted if a project is catching up or falling behind on validation (the process or granting credit). Thus to get accurate FLOPS estimates you should look at average RAC over a period of a week or so.

Recent Average Credit

Projects maintain two counts of granted credit:

  • Total credit: The total number of Cobblestones performed and granted.
  • Recent average credit: The average number of Cobblestones per day granted recently. This average decreases by a factor of two every week.

Both quantities (total and recent average) are maintained for each user, host and team.

How benchmarks are calculated

'Whetstone' is a benchmark that is reported as 'Measured floating point speed'. Floats can have fractional parts (like 1.48283 or 3.141592); Whetstone does 8 different groups of tests (repeatedly of course), times how long they took to finish, and produces a number, [ops performed]/[time]. These tests all use floating point math operations of the CPUs being tested. Some of them are simple math (addition, multiplication, division) while others compute trigonometric and exponential functions (sine, cosine, tangent, exponent). Neither of the tests really checks how well/fast a system can access memory, and most BOINC applications access memory a lot.

Why 'predicted time' can be wrong

Each task delivered to your machine includes an estimated number of floating point (FP) calculations. BOINC divides this by the FP benchmark number to estimate completion time. SETI@home's tasks estimate number is currently always 27.9 trillion (american), however the actual number of FP ops varies greatly which is why WUs take different amounts of time to finish. SETI@home uses almost all single-precision floating point math, while Whetstone is all double-precision math. On Intel x86 processors the speed difference in calculating single vs. double isn't very large.

SETI@home uses mostly add, sub, multiply and divide. About 20% of its time is spent in trigonometry. Almost all the time in Whetstone is used for trigonometry.

Memory access speed and trigonometry are the two major reasons that the benchmark results and SETI@home processing speed don't match up on many systems.

Personal tools