Cobblestone / BOINC credit / CPU time / GFLOPs equivalency documentation discrepancy

Message boards : Documentation : Cobblestone / BOINC credit / CPU time / GFLOPs equivalency documentation discrepancy
Message board moderation

To post messages, you must log in.

AuthorMessage
mario

Send message
Joined: 21 Apr 18
Posts: 6
Argentina
Message 85963 - Posted: 22 Apr 2018, 18:16:04 UTC
Last modified: 22 Apr 2018, 18:17:10 UTC

I have been running BOINC for almost 10 years now, and I had never bother to figure out exactly what a BOINC credit meant, I just knew more is better :)
I ran over this when doing some research that would help me to take an informed decision regarding my future computer hardware upgrade. The goal was to try to identify the CPUs and GPUs with the best GFLOPS/price and GPLOPS/Watt relations, withing a certain budget, and having BOINC in mind.

I found 2 very different definitions for the BOINC credit:

- Sources that state that 1 BOINC credit equals 1/100 day CPU time @ 1 GFLOPs/second
https://es.wikipedia.org/wiki/Sistema_de_cr%C3%A9ditos_de_BOINC
http://www.gridrepublic.org/joomla/components/com_mambowiki/index.php/More_about_Credits,_GFlops,_G-hours,_and_CPU_hours
https://www.worldcommunitygrid.org/help/viewTopic.do?shortName=points#177


- Sources that state that 1 BOINC credit equals 1/200 day CPU time @ 1 GFLOPs/second
https://boinc.berkeley.edu/trac/wiki/CreditGeneralized
http://boinc.berkeley.edu/wiki/Computation_credit
https://en.wikipedia.org/wiki/BOINC_Credit_System

Surprisingly, in some cases, sources with different definitions do refer to each other.

After much head scratching, and doing some calculations with the credits that my crunching devices got for the last month, I concluded that the first one is the right definition. Is it?

Can the we finally and correclty state that:
1 BOINC credit
    = 1 Cobblestone
    = 1/100 day of CPU time @ 1 GFLOPs/second
    = 864 GFLOPs (billion instructions)

ID: 85963 · Report as offensive
robsmith
Volunteer tester
Help desk expert

Send message
Joined: 25 May 09
Posts: 1283
United Kingdom
Message 85964 - Posted: 22 Apr 2018, 19:46:33 UTC

Sadly many (most) projects have implemented their own credits/task scheme which makes cross-project comparisons all but impossible.

Your calculation of GFLOPS will only apply to the particular application/processor combination you used to derive it - many projects have deployed applications with varying levels of "optimisation" which affects the way the calculation is done, and thus the elapsed time for the task - Running the same task on two different combinations of hardware and application can result in very different "GFLOPS_executed". Then we get into the issue of GPUs running multiple tasks in parallel which adds another level of complexity.
ID: 85964 · Report as offensive
mario

Send message
Joined: 21 Apr 18
Posts: 6
Argentina
Message 85967 - Posted: 23 Apr 2018, 2:57:40 UTC - in response to Message 85964.  
Last modified: 23 Apr 2018, 3:11:51 UTC

Hi Rob, thanks for your comments.
I understand the fact that different BOINC projects may have different credit/GFLOP assignement values, it is actually one of the first things I noticed when trying to understand BOINC credit. For example, that 7 World Community Grid credits equal to 1 BOINC credit (1 Cobblestone).

I also undestand the difficulty to properly compare GFLOPS on different CPUs/GPUs/APUs architectures, models, generatios, and that many other variables can affect it.

What I am trying to point out is that there is documentation online that define the exact same thing, the Cobblestone (BOINC credit), in 2 different ways:
1) As 1/100 day CPU time @ 1 GFLOPs/second (I really think this is the right one)
2) As 1/200 day CPU time @ 1 GFLOPs/second

If I am wrong, the documentation should be corrected in the first set of 3 links I mentioned in my original post.
But, if I am right, the documentation in the official BOINC Wiki and on the English Wikipedia article (the Spanish Wikipedia article use the other definition), are the ones that would be wrong. And something should be done about it (please refer to the second set of 3 links I mentioned in my original post).

Using an analogy: it is like defining the mile as 1,609.34 meters and also as 3,218.69 meters.

I am just trying to save other people the confusion about a subject that is not trivial to understand by itself. There should be one single definition for the Cobblestone.
ID: 85967 · Report as offensive
robsmith
Volunteer tester
Help desk expert

Send message
Joined: 25 May 09
Posts: 1283
United Kingdom
Message 85968 - Posted: 23 Apr 2018, 5:18:36 UTC

The whole basis for there being a fixed "exchange rate" is blown, because some projects vary the award for the the same task on the same hardware. For example SETI@Home is slowly reducing the award per task, even though tasks are taking longer.
Indeed you have picked a mixture of "official" sources (from .../boinc....) and unofficial sources (those from projects), and projects can award credit in the manner they choose, paying absolutely no notice to the credit awarding mechanism within BOINC. Thus rendering any "exchange rate" between projects invalid.
ID: 85968 · Report as offensive
mario

Send message
Joined: 21 Apr 18
Posts: 6
Argentina
Message 85970 - Posted: 23 Apr 2018, 9:47:10 UTC - in response to Message 85968.  

Hello Rob.
I perfectly understand what you are saying, but it is not what I am talking about.
I am not refering about the different credit definitions of different projects. Please follow the links I posted on my first message.

I am talking about the definition of Cobblestone. There can be just one definition for it.

It would be great if anybody involved in the design, development and/or maintenance of the BOINC code base can clarify this. Do anyone of them hang out in here at all? And whatever the right definition is, the wrong online documentation should be fixed.

A very graphic example is that the English Wikipedia entry for "BOINC Credit System" gives one definition, and the same entry in the Spanish version gives the other one.
ID: 85970 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5077
United Kingdom
Message 85974 - Posted: 23 Apr 2018, 12:36:01 UTC - in response to Message 85963.  

Sorry, I could have answered this from memory yesterday, but it's proved hard to locate the documentary evidence that you have the right to request.

Your second statement is the one officially recognised by BOINC:

1 BOINC credit equals 1/200 day CPU time @ 1 GFLOPs/second
There are two complementary calculations:

"How many credits should I get for a day's processing on a 1 GFLOP device?" Answer = 200

"How many Fpop-days did I compute in order to earn 1 BOINC credit?" Answer = 1/200

The second version is actually easier to track down an authoritative source for. A number of places - most notably, the home page of this web site, but also a number of the statistics sites like https://boincstats.com/en/stats/-1/project/detail - will quote you the total processing power of the BOINC platform, or a subset of it like a single project. The value today is stated as 14.879 PetaFLOPS (this site), or 20,880.857 TeraFLOPS (BOINCstats). I think BOINCstats archives a wider range of data from more projects than this site does.

The source code for this web site is at https://github.com/BOINC/boinc-site/blob/master/index.php#L65:

$petaflops = number_format($credit_day/200000000, 3);
- which is where the magic 200 that you're trying to track down can be found. Similarly, the BOINCstats page I linked is showing

Recent average credit RAC			4,176,171,453
Average floating point operations per second	   20,880,857.3 GigaFLOPS / 20,880.857 TeraFLOPS
It's no coincidence that the first figure is exactly 200 (less several orders of magnitude) larger than the second figure - fpops is calculated from credit, not the other way round.

How did the documentation discrepancies come about, I hear you ask? When BOINC and this web site was first set up, the original figure was 100, and this will have been copied into the earliest sources. But in the summer of 2010, it was adjudged that a mistake had been made, and the true definition should have used 200 all along. This is the evidence which is hard to track down, but I found a smoking gun in SVN revision 21962 of Jul 15, 2010. My memory suggests that there was more detail in an email - perhaps on the development or projects email lists - around that time: I'll have another look now that I have an exact date.

With regard to the conflicting documentation sources you've uncovered, I'd suggest that BOINC's own Wikis, and the English-language Wikipedia, are more likely to be reliable: projects, Account Managers, and translations are secondary sources which may not have been updated (yet) to reflect the 2010 redefinition. At least with a Wiki, you can always check the dates on the page history.
ID: 85974 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15477
Netherlands
Message 85975 - Posted: 23 Apr 2018, 12:45:33 UTC - in response to Message 85974.  

At least with a Wiki, you can always check the dates on the page history.
Which in the case of the Credit Calculation page in the User Manual BOINC Wiki is https://boinc.berkeley.edu/w/?title=Computation_credit&diff=2818&oldid=1126, which shows that on the 15th of July 2010, Admin changed the notation from 1/100 to 1/200, with Admin being David Anderson (the main developer) in this case.
ID: 85975 · Report as offensive
mario

Send message
Joined: 21 Apr 18
Posts: 6
Argentina
Message 86023 - Posted: 28 Apr 2018, 2:29:38 UTC - in response to Message 85974.  

Sorry, I could have answered this from memory yesterday, but it's proved hard to locate the documentary evidence that you have the right to request.

Your second statement is the one officially recognised by BOINC:

1 BOINC credit equals 1/200 day CPU time @ 1 GFLOPs/second
There are two complementary calculations:

"How many credits should I get for a day's processing on a 1 GFLOP device?" Answer = 200

"How many Fpop-days did I compute in order to earn 1 BOINC credit?" Answer = 1/200

Great, thanks for the detailed explanation. I am glad this detail is explicitly documented here in case anyone else runs into it.

Also sad to discover that all my crunching devices are performing half of what, at least in theory, they should be performing. But that´s a different story.

Thanks everybody.
ID: 86023 · Report as offensive
robsmith
Volunteer tester
Help desk expert

Send message
Joined: 25 May 09
Posts: 1283
United Kingdom
Message 86024 - Posted: 28 Apr 2018, 7:05:06 UTC

Also sad to discover that all my crunching devices are performing half of what, at least in theory, they should be performing. But that´s a different story.

Since the ACTUAL award of credits is down to the individual projects, and NO PROJECT actually obeys the theoretical figures you have fallen foul of theory vs reality. One should NEVER use credits awarded to compare computer performance between projects. What you now have to do is look and see how your computer compares with other similar computers that are running the same pattern of work as you are on each of the projects you are taking part in, I know doing this is a long winded task, and will take a lot of time to find comparable computers to your own that are running the same set of projects with the same work shares etc.
ID: 86024 · Report as offensive
mario

Send message
Joined: 21 Apr 18
Posts: 6
Argentina
Message 86030 - Posted: 28 Apr 2018, 23:19:25 UTC - in response to Message 86024.  

Also sad to discover that all my crunching devices are performing half of what, at least in theory, they should be performing. But that´s a different story.

Since the ACTUAL award of credits is down to the individual projects, and NO PROJECT actually obeys the theoretical figures you have fallen foul of theory vs reality. One should NEVER use credits awarded to compare computer performance between projects. What you now have to do is look and see how your computer compares with other similar computers that are running the same pattern of work as you are on each of the projects you are taking part in, I know doing this is a long winded task, and will take a lot of time to find comparable computers to your own that are running the same set of projects with the same work shares etc.

I see. I will keep this in mind. Thanks for your answers Rob.
ID: 86030 · Report as offensive

Message boards : Documentation : Cobblestone / BOINC credit / CPU time / GFLOPs equivalency documentation discrepancy

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.