[gambit-list] Patch to speed bignum division in common case

Bradley Lucier lucier at math.purdue.edu
Tue Oct 1 13:16:23 EDT 2013


On 09/30/2013 08:52 PM, Bradley Lucier wrote:
> The times for 32-bit on my Core i7:

<stuff deleted>

On my Q6600, which is the same, I believe, as as used here:

http://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=pidigits&lang=all&data=u64

The timings are:

64 bit:

Old:

time ./pidigits2-gambit > /dev/null
(time (digits 10000))
    16251 ms real time
    16228 ms cpu time (15484 user, 744 system)
    9987 collections accounting for 3023 ms real time (2888 user, 140
system)
    12173870360 bytes allocated
    263552 minor faults
    no major faults
15.488u 0.748s 0:16.26 99.7%    0+0k 0+0io 0pf+0w

New:

time ./pidigits2-gambit > /dev/null
(time (digits 10000))
    13289 ms real time
    13272 ms cpu time (12752 user, 520 system)
    8065 collections accounting for 2421 ms real time (2268 user, 96 system)
    9831650712 bytes allocated
    205741 minor faults
    no major faults
12.760u 0.520s 0:13.30 99.8%    0+0k 0+0io 0pf+0w

32-bit:

Old:

time ./pidigits2-gambit > /dev/null
(time (digits 10000))
    31351 ms real time
    31308 ms cpu time (30512 user, 796 system)
    11396 collections accounting for 2461 ms real time (2460 user, 68
system)
    12119457704 bytes allocated
    266083 minor faults
    no major faults
30.516u 0.800s 0:31.36 99.8%    0+0k 0+0io 0pf+0w

New:

time ./pidigits2-gambit > /dev/null
(time (digits 10000))
    27339 ms real time
    27300 ms cpu time (26824 user, 476 system)
    9223 collections accounting for 2096 ms real time (2092 user, 56 system)
    9808284504 bytes allocated
    212081 minor faults
    no major faults
26.832u 0.476s 0:27.34 99.8%    0+0k 0+0io 0pf+0w

So current gmp kills us (all loops are in hand-coded assembler), but we
don't do too badly compared to the other implementations.

Brad


More information about the Gambit-list mailing list