Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: phelix on August 19, 2011, 07:57:47 AM



Title: How to estimate Network Speed for Guinness World Record
Post by: phelix on August 19, 2011, 07:57:47 AM
Bitcoin is by far the fastest distributed computing network in the world. In this post we have started to claim that record at Guinness: https://bitcointalk.org/index.php?topic=29722 (https://bitcointalk.org/index.php?topic=29722)

For the entry it is necessary for an expert to attest to the network speed. Still, I think it might speed things up if we would discuss the proper way for such an estimate here before.

Got news from Guinnes world records:

MOST POWERFUL DISTRIBUTED COMPUTING NETWORK
DEFINITION OF RECORD
This is for the most powerful distributed computing network.
It must be measured in petaFLOPS and floating point operations per second.

GUIDELINES FOR ‘MOST POWERFUL DISTRIBUTED COMPUTING NETWORK’
1. For the purposes of this record, a distributed computing network consist of
clients and servers connected in such a way that any system can potentially
communicate with any other system.

2. The capacity of the distributed computing network must be tested using
appropriate means.

3. The exact measurements of the distributed computing network must be given in
petaFLOPS and floating point operations per second.

[...]

I am aware we are not actually doing any FLOPS so we have to figure something out here to still make it work.

people have already thought about this a while ago: http://bitcointalk.org/index.php?topic=4689.0 (http://bitcointalk.org/index.php?topic=4689.0)  but we need to bring it all into order and make it possible to verify/validate everything.


What about this attempt:
(please correct me, my knowledge of the bitcoin network guts is still quite limited)

Assumption: SHA256 is fine

10) The network finds the solution to a specific SHA256 Problem (depending on difficulty)
The solution pops up in the blockchain
20) It takes n hashes to solve such a problem on average
SHA256 picture book???
30) Problems (blocks) are solved at speed s
Blocks pop up at speed s
40) --> over a certain period of time t the network has to try m hashes
50) It takes i integer operations for a single hash
Kernel Analyzer?
60) --> over t there have to be i integer operations done in the network
70) For some strange reasons (muladd???) we can say that one 32bit INTOP is two 16bit FLOPS
??







Title: Re: How to estimate Network Speed for Guinness World Record
Post by: Gabi on August 19, 2011, 09:10:04 AM
Quote
It must be measured in petaFLOPS and floating point operations per second.

That's what happens when people who know NOTHING about computing make the rules...


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on August 29, 2011, 07:18:13 AM
Quote
It must be measured in petaFLOPS and floating point operations per second.

That's what happens when people who know NOTHING about computing make the rules...
we just have to work arround it...  and use it to our advantage  ;D


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: Gabi on August 29, 2011, 12:50:40 PM
It's like the world record on sport and saying "sport record must be measured in goal made" (refering to soccer i mean). And then we have runners arguing that the first place is like 3 goal in a soccer match and so on.

Seriously, "It must be measured in petaFLOPS and floating point operations per second." is idiocy.

We make exactly 0 petaFLOPS


Ok, we have to work around it but how? You can't convert integer in flops operations...


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: kjj on August 29, 2011, 02:26:58 PM
They measure in FLOPS because that is what supercomputers do, and that is how supercomputers are measured.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on August 29, 2011, 05:56:29 PM
[...]

We make exactly 0 petaFLOPS

Ok, we have to work around it but how? You can't convert integer in flops operations...

but mining GPUs could make petaFLOPS. From what I heard AMD says one 32bit INTOP is two 16bit FLOPS (see #70 above). I think Guinness will accept it if we can convince them that at least 75% of the bitcoin network consists of GPUs. Unfortunately there is no way to prove this, is there?


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: kjj on August 29, 2011, 06:12:27 PM
[...]

We make exactly 0 petaFLOPS

Ok, we have to work around it but how? You can't convert integer in flops operations...

but mining GPUs could make petaFLOPS. From what I heard AMD says one 32bit INTOP is two 16bit FLOPS (see #70 above). I think Guinness will accept it if we can convince them that at least 75% of the bitcoin network consists of GPUs. Unfortunately there is no way to prove this, is there?


I'm pretty sure the Guinness people aren't interested in what we could do, but only in what we actually do do.  The right approach would probably be to ask them to consider adding a category that we do fit into.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: wareen on August 29, 2011, 06:14:46 PM
but mining GPUs could make petaFLOPS. From what I heard AMD says one 32bit INTOP is two 16bit FLOPS (see #70 above). I think Guinness will accept it if we can convince them that at least 75% of the bitcoin network consists of GPUs. Unfortunately there is no way to prove this, is there?
Unfortunately no - for all we know, 90% of the hashing power could come from Chuck Norris with his abacus...

Of course you can argue indirectly: AMD GPUs are vastly superior in terms of Mhash/$ _and_ Mhash/W than anything else so that everybody not using it is most likely losing money on electricity (Nvidia/CPU) or on initial investments (ASIC/FPGA).
I'd cite the mining hardware comparison on the wiki (https://en.bitcoin.it/wiki/Mining_hardware_comparison) as reference.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: wareen on August 29, 2011, 06:21:41 PM
I'm pretty sure the Guinness people aren't interested in what we could do, but only in what we actually do do.  The right approach would probably be to ask them to consider adding a category that we do fit into.
Well, just because some theoretical supercomputer might usually work on integer problems doesn't make it less a supercomputer worthy of Guinness' attention. I'd say its the hardware that counts, not the software usually running on it.

I think the proper way would be to explain the situation, give them the best estimates of the hardware (and a FLOPs value) we can come up with and let them decide what to do.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: kjj on August 29, 2011, 06:34:12 PM
I'm pretty sure the Guinness people aren't interested in what we could do, but only in what we actually do do.  The right approach would probably be to ask them to consider adding a category that we do fit into.
Well, just because some theoretical supercomputer might usually work on integer problems doesn't make it less a supercomputer worthy of Guinness' attention. I'd say its the hardware that counts, not the software usually running on it.

I think the proper way would be to explain the situation, give them the best estimates of the hardware (and a FLOPs value) we can come up with and let them decide what to do.

Just don't be disappointed.  Floating point operations have been an implicit part of the definition of a supercomputer for like 45 years now.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on August 29, 2011, 08:20:16 PM
I'm pretty sure the Guinness people aren't interested in what we could do, but only in what we actually do do.  The right approach would probably be to ask them to consider adding a category that we do fit into.
Well, just because some theoretical supercomputer might usually work on integer problems doesn't make it less a supercomputer worthy of Guinness' attention. I'd say its the hardware that counts, not the software usually running on it.

I think the proper way would be to explain the situation, give them the best estimates of the hardware (and a FLOPs value) we can come up with and let them decide what to do.
+1 that's exactly how I see it.

folding@home who currently own the title also mostly consist of the very same GPUs.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 24, 2011, 09:43:18 AM

folding@home stats:
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats


foling@home flop faq:
http://folding.stanford.edu/English/FAQ-flops


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: dishwara on September 29, 2011, 11:39:14 AM
We have to send letter to Guinness that our bitcoin network has highest hash power in integer calculation & ask them to record it.
Instead of just Network speed, we have to tell them that we have a new record which can be only calculated in integer, so divide the network speed record in to TWO categories one using FLOPS & other using INTEGER & ask them to record bitcoin network in INTEGER.
If enough people ask Guinness, they will surely consider it.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 29, 2011, 12:43:11 PM
We have to send letter to Guinness that our bitcoin network has highest hash power in integer calculation & ask them to record it.
Instead of just Network speed, we have to tell them that we have a new record which can be only calculated in integer, so divide the network speed record in to TWO categories one using FLOPS & other using INTEGER & ask them to record bitcoin network in INTEGER.
If enough people ask Guinness, they will surely consider it.

hmm maybe you are right.

also we should just claim the record until someone can prove the opposite. it is pretty obvious to me that bitcoin is the fastest network. I will post a new calculation soon.



Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 29, 2011, 01:06:15 PM
edit with new # of intops / hash  (2011-09-30)

from blockexplorer:
147282    64afcd14e7...    2011-09-28 19:06:58    93    8775.96044812    51.365
147263    145d985b3f...    2011-09-28 15:43:44    13    251.70410514    6.011

--> 19 new Blocks in 12194 Secs

t ~= 641.79 secs / block (10.7 min)

D = 1689334.404597



The expected number of hashes we need to calculate to find a block with difficulty D is [...]
D * 2**48 / 0xffff
(https://en.bitcoin.it/wiki/Difficulty)

= h = 7255746733660647.0

H = h / t

--> Network Hashrate
H ~= 11305484245096.756 Hashes / sec




Int-Ops / Hash

a = 3385 ALU OPs  /  Hash     (for 5xxx architecture; 6xxx: 4220 ---> we go for a conservative value)
(https://bitcointalk.org/index.php?topic=7964.msg550288#msg550288)

IntOps / Sec:
i = a * H

i = 38.2690641697 PetaIntOps / s



For comparison:
for Radeon Cards AMD says 1 32Bit-IntOp = 2 16Bit FLOPs (though it may only make limited Sense)

f = i * 2 = 76.5381283393 PetaFLOPs/s

off Bitcoinwatch by a factor of two because Bitcoinwatch uses a different number of INTOPs / hash (x86).

Bitcoinwatch: Network Hashrate PetaFLOPs/s    153.06


Anyway still more than 18 times faster than folding@home, and also much faster than all the others like SETI, BOINC, etc.  


Hereby I declare BITCOIN the MOST POWERFUL DISTRIBUTED COMPUTING NETWORK on earth.





Title: Re: How to estimate Network Speed for Guinness World Record
Post by: BurtW on September 29, 2011, 01:19:19 PM
This is exactly how bitcoinwatch estimates FLOPS.  I am not saying it is an acurate way to do the estimate, all I am saying is this is how they do it for what it is worth and for comparison to your other methods.  Many here among us question the valididty of this estimation method.

The page simply uses the following assumptions/estimates:

    1 INTOP = 2 FLOP
    1 hash = 6.35K INTOP
    1 hash = 12.7K FLOP

So the hashrate in TeraFLOP/s is simply 12.7 times the hashrate in Gigahashes/s.

As an example:  11,558.55 Gigahashs/s * 12.7 TeraFLOP/Gigahash = 146,794 TeraFLOP/s = 146 PetaFLOP/s


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 29, 2011, 02:05:24 PM
This is exactly how bitcoinwatch estimates FLOPS.  I am not saying it is an acurate way to do the estimate, all I am saying is this is how they do it for what it is worth and for comparison to your other methods.  Many here among us question the valididty of this estimation method.

The page simply uses the following assumptions/estimates:

    1 INTOP = 2 FLOP
    1 hash = 6.35K INTOP
    1 hash = 12.7K FLOP

So the hashrate in TeraFLOP/s is simply 12.7 times the hashrate in Gigahashes/s.

As an example:  11,558.55 Gigahashs/s * 12.7 TeraFLOP/Gigahash = 146,794 TeraFLOP/s = 146 PetaFLOP/s

yes, somebody said so in an older post (link above).

Quote
    1 hash = 6.35K INTOP
this is too high in my opinion. ArtForz threw it into the ring for x86 INTOPs.

luckily we are in the comfortable situation that however conservative we make the comparison we still are the fastest  ;D



Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 30, 2011, 03:08:53 PM
turns out a gpu does a minimum of 3375 integer operations per hash

https://bitcointalk.org/index.php?topic=7964.msg550288#msg550288


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 30, 2011, 03:30:42 PM
#python script for you to play with

D = 1689334.404597  # difficulty
t = 641.79  # time per block
h = D* 2**48 / 0xffff  # average hashes per block
H = h / t  # network hashes per sec
print "network hashes/sec H:", H

a = 3385 # ALU OPs  /  Hash   (more on 6xxx cards)
i = a * H  # INTOPs / sec
print "network PetaINTOPs/sec:", i / 10**15

f = i * 2  # maybe 1.0 or 1.5 to be more conservative and make up for FPGAs
print "network would-be PetaFLOPs/s (=voodoo):", f / 10**15

#output
##network hashes/sec H: 1.13054842451e+13
##network PetaINTOPs/sec: 38.2690641697
##network would-be PetaFLOPs/s (=voodoo): 76.5381283393


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: maaku on September 30, 2011, 05:12:06 PM
I'm not sure why there has to be voodoo involved. Most of the bitcoin network is GPU-based (at the moment). Modern GPUs can perform true floating-point operations. So get the most popular GPUs in use, get their IOPS and FLOPS ratings, and use the median ratio for calculating the Guinnes world record value.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on September 30, 2011, 06:32:00 PM
I'm not sure why there has to be voodoo involved. Most of the bitcoin network is GPU-based (at the moment). Modern GPUs can perform true floating-point operations. So get the most popular GPUs in use, get their IOPS and FLOPS ratings, and use the median ratio for calculating the Guinnes world record value.
AMD uses a factor of 2 for their Radeon cards

we do not know how much of the Hashrate is generated from FPGAs for example which may not be able to do any FLOPs at all. I think non GPU computing power is still neglectable, though.



Title: Re: How to estimate Network Speed for Guinness World Record
Post by: kano on October 02, 2011, 01:32:33 AM
Just in case you do actually send this to them ...
The PoW is actually a double sha256 (for that OPs/Hash number)

Also, it's very similar to sha256(sha256(data)) but not exactly
(part of the start isn't calculated every time and the end is cut short thus the actual value of sha256(sha256(data)) isn't completed)


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on October 02, 2011, 08:35:30 PM
Just in case you do actually send this to them ...
The PoW is actually a double sha256 (for that OPs/Hash number)

Also, it's very similar to sha256(sha256(data)) but not exactly
(part of the start isn't calculated every time and the end is cut short thus the actual value of sha256(sha256(data)) isn't completed)
yeah, Phateus explains it here: https://bitcointalk.org/index.php?topic=7964.msg550288#msg550288

he has releasd the most optimized public kernel so far.



Title: Re: How to estimate Network Speed for Guinness World Record
Post by: ptshamrock on October 10, 2011, 01:09:47 PM
thx phelix for managing this here . I like it very much!!

A Fan !


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on October 10, 2011, 02:46:36 PM
thx phelix for managing this here . I like it very much!!

A Fan !

thanks!  ;D

to really officially get the record we will have to bother Guinness some more...


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: EricSU on October 15, 2011, 12:49:06 AM
I don't think bitcoin will qualify as a "distributed computing network".
No work is distributed between bitcoin clients.
Each client works individually on its own block, its not a shared effort on the same job.

Pooled mining servers like deepbit is a distributed computing network.
Because the pool tells all nodes to work on the same block.


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: phelix on October 15, 2011, 07:30:28 PM
I don't think bitcoin will qualify as a "distributed computing network".
No work is distributed between bitcoin clients.
Each client works individually on its own block, its not a shared effort on the same job.

Pooled mining servers like deepbit is a distributed computing network.
Because the pool tells all nodes to work on the same block.

they are all trying to find a block. is that very different from folding@home?


Title: Re: How to estimate Network Speed for Guinness World Record
Post by: kano on October 18, 2011, 01:51:15 AM
I don't think bitcoin will qualify as a "distributed computing network".
No work is distributed between bitcoin clients.
Each client works individually on its own block, its not a shared effort on the same job.

Pooled mining servers like deepbit is a distributed computing network.
Because the pool tells all nodes to work on the same block.
Actually:
They are all trying to find the 'next' block.
Although the exact contents of each attempted solution is slightly different (every single hash done is slightly different), the effect of what everyone attempts is the same:

They are all trying to confirm outstanding transactions if any are available.

Even at a single pool, the difference you stated is still there.
Everyone is trying to find the 'next' block but with a different nonce value and with different transactions as more become available.
Each getwork may include new transactions for the same block
i.e. each getwork is different as with a similar difference as comparing 2 getworks from 2 different pools at the same time.