ietf-asrg
[Top] [All Lists]

Re: [Asrg] 6. Email Path Verification (hashcash benchmarks)

2003-09-13 16:15:39
Please run the C hashcash code found at hashcash.org. I would appreciate seeing the performance numbers. I would also like to see them for any non Intel
machines as well like Sparc and Alpha.

I'll see what I can pull together.

First, a 1600MHz Athlon-XP:

chromi(_at_)hydrogen hashcash-0.27 $ ./hashcash -s -b 20
time estimate: 2 seconds
chromi(_at_)hydrogen hashcash-0.27 $ ./hashcash -s
speed: 649351 collision tests per second

Second, a 200MHz Pentium-MMX:

chromi(_at_)lithium hashcash-0.27 $ ./hashcash -s -b 20
time estimate: 15 seconds
chromi(_at_)lithium hashcash-0.27 $ ./hashcash -s
speed: 69396 collision tests per second

Both of the above are using GCC3 with default compile options, no architecture or CPU specific stuff. Surprisingly, the scaling looks linear with clock speed, an old Pentium isn't usually this good when compared with an Athlon. I'll have to examine the algorithm and figure out why.

It doesn't compile first time on the Macs, will need to hack on it a bit.

Got it to compile on a Classic Mac, mostly by hacking out all the option parsing. The below is using CodeWarrior Pro 5, optimised for a PPC601 or 68020.

400MHz G3:    270000 collisions/sec
400MHz G3:    114000 when emulating 68K code
 80MHz 601:    36100
 80MHz 601:    13700 when emulating 68K code
 80MHz 68040:   5500
 16MHz 68030:   1000

Plus, I had to un-stiction the HDs on the two 68K machines. They'd been sitting around for a while.

So, broadly speaking, the IIcx will take about 20 minutes to make a 20-bit hashcash, on average. That's a lot better than I expected, and it *might* just be acceptable to patient old Granny, as long as it doesn't happen while she's already online, and she has the presence of mind to go make a pot of tea or something while she waits.

It looks like the '030 isn't as far behind the '040 (architecturally) as I thought, though it still has a big clock-speed gap. I also take these numbers as a fairly clear sign that the hashcash algorithm fits into a very small L1 cache, because the IIcx's memory is *very* slow.

(NB: Apple marketed the 80MHz 68040 as a "40MHz" CPU, referring to the external clock rather than the clock-doubled core. Modern terminology always refers to the core speed, so I corrected that here. The '040 can be considered equivalent to a 486DX2.)

Finally, the SPARC machine - which I'm still unsure of the specs for - gave about 250000 collisions/sec, and an estimated 4 seconds to make a 20-bit hashcash. If anyone who knows about Solaris can tell me how to extract basic information about the machine (from an unprivileged account, natch), I'd be grateful. I'd hazard a guess that it's a recent but low-end multiprocessor workstation.

I'd also try to give you scores for an ARM, but I don't have access to my parents' Acorn Archimedes from over here.

--------------------------------------------------------------
from:     Jonathan "Chromatix" Morton
mail:     chromi(_at_)chromatix(_dot_)demon(_dot_)co(_dot_)uk
website:  http://www.chromatix.uklinux.net/
tagline:  The key to knowledge is not to rely on people to teach you it.


_______________________________________________
Asrg mailing list
Asrg(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/asrg



<Prev in Thread] Current Thread [Next in Thread>