in reply to Re: calculate average from range of hash values (optimize)(reply)
in thread calculate average from range of hash values (optimize)

Here are the results of the benchmark code contained in the sister node to this one. As I state there the primary difference between this node and the parent is that the values involed are not random numbers from 0 to 1, but rather the value of the key. This makes error checking and proving easier.

Test Set:

( 0 .. 100, 10000 .. 30000, 100000 .. 150000 )

Testing 0 - 150000

RoutineAverage
ari1 94862.56
orig 114752.28
demc 94862.56
ari3 94862.56
ofix 94862.56
buk 94862.56
dem1 94862.56
demcp94862.56
dem2 94862.56

Benchmark: running ari1, ari3, buk, dem1, dem2, demc, demcp, ofix, orig, each for at least 10 CPU seconds...

TestWallclock SecsUsrSysCUsrCSysCPUN/secN
ari110.0010.01 0.00 0.00 0.0010.01 3.3033
ari311.0010.27 0.00 0.00 0.0010.27 1.8519
buk10.0010.09 0.00 0.00 0.0010.09 3.4735
dem110.0010.07 0.00 0.00 0.0010.07 5.1652
dem210.0010.20 0.00 0.00 0.0010.20 2.3524
demc11.0010.51 0.00 0.00 0.0010.511432.5215063
demcp11.0010.52 0.00 0.00 0.0010.5213.03137
ofix10.0010.10 0.00 0.00 0.0010.10 2.0821
orig10.0010.08 0.00 0.00 0.0010.08 3.3734

Comparative Results

Rateari3ofixdem2ari1origbukdem1demcpdemc
ari31.85/s---11%-21%-44%-45%-47%-64%-86%-100%
ofix2.08/s12%---12%-37%-38%-40%-60%-84%-100%
dem22.35/s27%13%---29%-30%-32%-54%-82%-100%
ari13.30/s78%59%40%---2%-5%-36%-75%-100%
orig3.37/s82%62%43%2%---3%-35%-74%-100%
buk3.47/s87%67%47%5%3%---33%-73%-100%
dem15.16/s179%148%119%57%53%49%---60%-100%
demcp13.0/s604%527%454%295%286%276%152%---99%
demc1433/s77294%68825%60806%43371%42349%41218%27655%10895%--

Testing 0 - 100

RoutineAverage
ari1 50.00
orig 27.75
demc 50.00
ari3 50.00
ofix 50.00
buk 50.00
dem1 50.00
demcp50.00
dem2 50.00

Benchmark: running ari1, ari3, buk, dem1, dem2, demc, demcp, ofix, orig, each for at least 10 CPU seconds...

TestWallclock SecsUsrSysCUsrCSysCPUN/secN
ari111.0010.52 0.00 0.00 0.0010.523716.1539079
ari311.0010.63 0.00 0.00 0.0010.632657.5128236
buk12.0010.59 0.00 0.00 0.0010.59 5.6660
dem110.0010.09 0.00 0.00 0.0010.09 5.4555
dem211.0010.47 0.00 0.00 0.0010.47 5.5458
demc11.0010.56 0.00 0.00 0.0010.56108844.871149946
demcp11.0011.16 0.00 0.00 0.0011.167079.6978981
ofix10.0010.09 0.00 0.00 0.0010.09 2.7728
orig10.0010.13 0.01 0.00 0.0010.14 3.9540

Comparative Results

Rateofixorigdem1dem2bukari3ari1demcpdemc
ofix2.77/s---30%-49%-50%-51%-100%-100%-100%-100%
orig3.95/s42%---28%-29%-30%-100%-100%-100%-100%
dem15.45/s96%38%---2%-4%-100%-100%-100%-100%
dem25.54/s100%40%2%---2%-100%-100%-100%-100%
buk5.66/s104%43%4%2%---100%-100%-100%-100%
ari32658/s95703%67235%48677%47895%46827%---28%-62%-98%
ari13716/s133867%94058%68108%67015%65521%40%---48%-97%
demcp7080/s255123%179282%129844%127762%124915%166%91%---93%
demc108845/s3923757%2757757%1997698%1965676%1921919%3996%2829%1437%--

Testing 1000 - 10002

RoutineAverage
ari1 10001.00
orig undef
demc 10001.00
ari3 10001.00
ofix undef
buk 10001.00
dem1 10001.00
demcp10001.00
dem2 10001.00

Benchmark: running ari1, ari3, buk, dem1, dem2, demc, demcp, ofix, orig, each for at least 10 CPU seconds...

TestWallclock SecsUsrSysCUsrCSysCPUN/secN
ari111.0010.49 0.00 0.00 0.0010.49113.201187
ari311.0010.68 0.00 0.00 0.0010.6872.50774
buk11.0010.42 0.00 0.00 0.0010.42 5.8661
dem110.0010.31 0.00 0.00 0.0010.31 5.6358
dem210.0010.50 0.00 0.00 0.0010.50 5.7160
demc10.0010.29 0.00 0.00 0.0010.29123716.381272423
demcp11.0010.55 0.00 0.00 0.0010.5531343.29330515
ofix 9.0010.25 0.00 0.00 0.0010.25 2.8329
orig11.0010.81 0.00 0.00 0.0010.81 3.7941

Comparative Results

Rateofixorigdem1dem2bukari3ari1demcpdemc
ofix2.83/s---25%-50%-50%-52%-96%-97%-100%-100%
orig3.79/s34%---33%-34%-35%-95%-97%-100%-100%
dem15.63/s99%48%---1%-4%-92%-95%-100%-100%
dem25.71/s102%51%1%---2%-92%-95%-100%-100%
buk5.86/s107%54%4%3%---92%-95%-100%-100%
ari372.5/s2461%1811%1188%1169%1138%---36%-100%-100%
ari1113/s3899%2883%1911%1882%1833%56%---100%-100%
demcp31343/s1107183%825910%556784%548669%535048%43133%27589%---75%
demc123716/s4370501%3260279%2197999%2165968%2112205%170545%109191%295%--

Testing 25000 - 25001

RoutineAverage
ari1 25000.50
orig 25000.50
demc 25000.50
ari3 25000.50
ofix 25000.50
buk 25000.50
dem1 25000.50
demcp25000.50
dem2 25000.50

Benchmark: running ari1, ari3, buk, dem1, dem2, demc, demcp, ofix, orig, each for at least 10 CPU seconds...

TestWallclock SecsUsrSysCUsrCSysCPUN/secN
ari112.0010.65 0.00 0.00 0.0010.6550908.78542433
ari3 9.0010.10 0.00 0.00 0.0010.1045684.09461592
buk10.0010.10 0.00 0.00 0.0010.10 6.7368
dem110.0010.00 0.00 0.00 0.0010.00 6.2062
dem210.0010.10 0.00 0.00 0.0010.10 6.5366
demc11.0010.56 0.00 0.00 0.0010.56115092.361214915
demcp11.0010.39 0.00 0.00 0.0010.3926813.69278487
ofix10.0010.24 0.00 0.00 0.0010.24 2.7328
orig11.0010.49 0.00 0.00 0.0010.49 3.9141

Comparative Results

Rateofixorigdem1dem2bukdemcpari3ari1demc
ofix2.73/s---30%-56%-58%-59%-100%-100%-100%-100%
orig3.91/s43%---37%-40%-42%-100%-100%-100%-100%
dem16.20/s127%58%---5%-8%-100%-100%-100%-100%
dem26.53/s139%67%5%---3%-100%-100%-100%-100%
buk6.73/s146%72%9%3%---100%-100%-100%-100%
demcp26814/s980994%685677%432595%410393%398320%---41%-47%-77%
ari345684/s1671448%1168298%737109%699282%678712%70%---10%-60%
ari150909/s1862616%1301923%821420%779267%756345%90%11%---56%
demc115092/s4211047%2943457%1857157%1761859%1710037%329%152%126%--


---
demerphq

<Elian> And I do take a kind of perverse pleasure in having an OO assembly language...