<pre>Brian,<br><br><span style="font-family: mon,mon;"></span><span style="font-family: mon;">I've run gmpbench on my (32-bit, single-core) Ubuntu machine...<br><br></span>jdo@BlackAdder:~/gmpbench-0.1$ cat /proc/cpuinfo <br>processor       : 0<br>vendor_id       : AuthenticAMD<br>cpu family      : 6<br>model           : 10<br>model name      : AMD Athlon(tm) XP 2800+<br>stepping        : 0<br>cpu MHz         : 2255.147<br>cache size      : 512 KB<br><br>...and this gives the following divide results:<br><br>    Program divide<br>      divide 8192 32<br>      GMPbench.base.divide.8192,32 result: 506617<br>      divide 8192 64<br>      GMPbench.base.divide.8192,64 result: 148316<br>      divide 8192 128<br>      GMPbench.base.divide.8192,128 result: 94882<br>      divide 8192 4096<br>      GMPbench.base.divide.8192,4096 result: 32560<br>      divide 8192 8064<br>      GMPbench.base.divide.8192,8064 result: 430080<br>      divide 131072 8192<br>      GMPbench.base.divide.131072,8192 result: 677<br>      divide 131072 65536<br>      GMPbench.base.divide.131072,65536 result: 373<br>      divide 8388608 4194304<br>      GMPbench.base.divide.8388608,4194304 result: 1.07<br>    GMPbench.base.divide result: 8489.3<br><br>You might notice several things:<br>1) The results of your only slightly higher clocked X2 are generally 2 to 3 times better than mine...<br>2) ...except for the FIRST result.<br><br>It looks like the divide.8192,32 and divide.8192,64 algorithms really do not differ much on a 64-bit machine (probably because the divider is stored in a 64-bit "word" anyway).<br>For my (32-bit) machine this does matter, as a 64-bit divider is stored in 2 32-bits "words".<br><br>In short, for a 64-bit machine, the first test should probably be excluded (or at least not taken into account when calculating the final benchmark result).<br><br>CU, JDO
<br>--------------------------------- Original mail ---------------------------------<br>I have been running gmpbench on an 2.4 GHz AMD64 X2 machine with the <br>following summary results:<br><br>Running benchmarks<br>  Category base<br>    Program multiply<br>    GMPbench.base.multiply result: 47916<br>    Program divide<br>    GMPbench.base.divide result: 18006<br>  GMPbench.base result: 29373<br>    Program rsa<br>  GMPbench.app result: 2386.3<br>GMPbench result: 8372<br><br>The striking feature here is that the divide results are poor and I am <br>wondering why this is.<br><br>    Program divide<br>      divide 8192 32<br>      GMPbench.base.divide.8192,32 result: 356495<br>      divide 8192 64<br>      GMPbench.base.divide.8192,64 result: 336958<br>      divide 8192 128<br>      GMPbench.base.divide.8192,128 result: 170276<br>      divide 8192 4096<br>      GMPbench.base.divide.8192,4096 result: 88660<br>      divide 8192 8064<br>      GMPbench.base.divide.8192,8064 result: 953276<br>      divide 131072 8192<br>      GMPbench.base.divide.131072,8192 result: 2170<br>      divide 131072 65536<br>      GMPbench.base.divide.131072,65536 result: 1202<br>      divide 8388608 4194304<br>      GMPbench.base.divide.8388608,4194304 result: 2.45<br>    GMPbench.base.divide result: 18006<br><br>Given these results for divide, is it likely that the limits for switching <br>algorithms is wrong?<br><br>Or do I need to do more work on assembler code in support of divide <br>operations?<br><br>Any observations would be appreciated.<br><br>   Brian Gladman</pre>
<div>

</div>
<BR>

-- 
<div> Enter the Bourne Ultimatum Sweepstakes<br>
<a href="http://www.hollywoodlife.net/index.php/sweepstakescontests/the-bourne-ultimatum/?utm_source=mail_hl_sent_footer&utm_medium=email&utm_term=070713&utm_content=hl_textlink&utm_campaign=the-bourne-ultimatum" target="_blank">View Trailer, Win Free Prizes.</a> In Theaters 08.03.07</div>