The following tables contain the execution time of the Gambit benchmarks on various implementations of Scheme. For a given benchmark, the entry in green indicates which Scheme system has the fastest execution and the number given is the time in milliseconds. Other entries give the execution time relative to the green entry. Blank entries indicate that this benchmark was not executed (possibly because the system did not accept to compile the program).
The first table gives CPU time and the second gives real time.
This table compares versions of Gambit compiled with different optimization options. The version of Gambit is:
heine:~/programs/gambit/gambit> git log commit 92409e98b47410bb4ddf00f1330e95d6d2e3e9a7 Author: Bradley LucierDate: Tue Aug 15 15:36:40 2017 -0400 Small changes to _num.scm.
The systems were configured with:
Gambit-C-r6rs-fixflo-unsafe-orig: ./configure 'CC=/usr/local/gcc-7.1.0/bin/gcc -march=native -D___CAN_IMPORT_CLIB_DYNAMICALLY' '--enable-single-host' '--enable-multiple-versions'
Gambit-C-r6rs-fixflo-unsafe-O2: ./configure 'CC=/usr/local/gcc-7.1.0/bin/gcc -march=native -D___CAN_IMPORT_CLIB_DYNAMICALLY' '--enable-single-host' '--enable-multiple-versions' --enable-c-opt
Gambit-C-r6rs-fixflo-unsafe-O2-expensive: ./configure 'CC=/usr/local/gcc-7.1.0/bin/gcc -march=native -D___CAN_IMPORT_CLIB_DYNAMICALLY' '--enable-single-host' '--enable-multiple-versions' --enable-c-opt --enable-gcc-opts
Gambit-C-r6rs-fixflo-unsafe-multiple-hosts: ./configure 'CC=/usr/local/gcc-7.1.0/bin/gcc -march=native -D___CAN_IMPORT_CLIB_DYNAMICALLY'
CPU: model name : Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz
I don't believe that these times justify the statement in INSTALL.txt:
It is also ***highly*** recommended to use the --enable-c-opt option to enable a higher C optimization level (-O2 instead of -O1): % ./configure --enable-single-host --enable-c-opt
I suggest rather to "***highly*** recommend" --enable-single-host, not --enable-c-opt. The improvements in run time aren't worth the extra hassles at compile time.
Program | Gambit-C-r6rs-fixflo-unsafe-O2 | Gambit-C-r6rs-fixflo-unsafe-O2-expensive | Gambit-C-r6rs-fixflo-unsafe-multiple-hosts | Gambit-C-r6rs-fixflo-unsafe-orig |
succeed
|
0 | 0 | 0 | 0 |
fail
|
failed | failed | failed | failed |
crash
|
||||
browse
|
1.05 | 688 | 1.21 | 688 |
cpstak
|
1.06 | 248 | 1.06 | 1.23 |
ctak
|
1.03 | 300 | 1.08 | 1.07 |
dderiv
|
1.03 | 312 | 2.05 | 1.28 |
deriv
|
1.03 | 276 | 1.04 | 1.33 |
destruc
|
1.02 | 1.09 | 256 | 1.12 |
diviter
|
1.05 | 1.01 | 304 | 1.05 |
divrec
|
1.06 | 380 | 1.03 | 1.01 |
puzzle
|
1.03 | 140 | 1.23 | 1.26 |
takl
|
136 | 136 | 2.21 | 1.03 |
trav1
|
180 | 180 | 1.31 | 1.02 |
trav2
|
680 | 680 | 680 | 680 |
triangl
|
260 | 260 | 1.05 | 1.06 |
fft
|
1.11 | 1.06 | 72 | 1.06 |
fib
|
1.51 | 1.49 | 148 | 1.11 |
fibfp
|
1.02 | 1.08 | 160 | 1.02 |
mbrot
|
1.03 | 152 | 1.03 | 1.03 |
nucleic
|
52 | 52 | 1.46 | 52 |
pnpoly
|
1.15 | 52 | 1.38 | 1.08 |
sum
|
1.47 | 1.40 | 60 | 1.13 |
sumfp
|
1.04 | 688 | 688 | 1.20 |
tak
|
1.30 | 1.23 | 188 | 1.13 |
tfib
|
1.08 | 1.02 | 1.55 | 400 |
ack
|
1.08 | 1.08 | 1.03 | 144 |
array1
|
72 | 1.06 | 1.06 | 1.17 |
cat
|
1.15 | 1.11 | 260 | 1.20 |
string
|
1.07 | 1.04 | 180 | 180 |
sum1
|
1.22 | 1.17 | 1.61 | 348 |
sumloop
|
1.01 | 1516 | 1.01 | 1.03 |
tail
|
1.17 | 1.06 | 256 | 1.16 |
wc
|
1.11 | 1.09 | 140 | 1.14 |
conform
|
1.04 | 192 | 2.79 | 1.08 |
dynamic
|
1.15 | 1.13 | 1.44 | 156 |
earley
|
1.04 | 208 | 1.02 | 1.04 |
fibc
|
204 | 204 | 1.25 | 1.14 |
graphs
|
1.02 | 264 | 1.95 | 1.15 |
lattice
|
1.01 | 408 | 2.37 | 1.08 |
matrix
|
1.01 | 312 | 1.88 | 1.04 |
maze
|
148 | 148 | 2.16 | 148 |
mazefun
|
1.02 | 1.03 | 1.82 | 240 |
nqueens
|
268 | 268 | 1.03 | 1.07 |
paraffins
|
1.03 | 1.00 | 896 | 1.03 |
peval
|
1.07 | 1.08 | 1.67 | 244 |
pi
|
1.01 | 336 | 1.58 | 1.01 |
primes
|
448 | 1.03 | 1.04 | 1.03 |
ray
|
1.07 | 1.14 | 1.29 | 56 |
scheme
|
1.04 | 276 | 3.62 | 1.07 |
simplex
|
84 | 1.05 | 1.05 | 1.10 |
slatex
|
1.03 | 136 | 1.12 | 136 |
perm9
|
328 | 1.05 | 328 | 1.02 |
nboyer
|
1.04 | 1.03 | 288 | 1.31 |
sboyer
|
208 | 208 | 1.04 | 1.04 |
gcbench
|
1.04 | 1.03 | 624 | 1.17 |
Program | Gambit-C-r6rs-fixflo-unsafe-O2 | Gambit-C-r6rs-fixflo-unsafe-O2-expensive | Gambit-C-r6rs-fixflo-unsafe-multiple-hosts | Gambit-C-r6rs-fixflo-unsafe-orig |
succeed
|
0 | 0 | 0 | 0 |
fail
|
failed | failed | failed | failed |
crash
|
||||
browse
|
1.05 | 686 | 1.21 | 1.01 |
cpstak
|
1.06 | 250 | 1.06 | 1.22 |
ctak
|
1.03 | 300 | 1.08 | 1.07 |
dderiv
|
1.02 | 314 | 2.03 | 1.28 |
deriv
|
1.03 | 275 | 1.05 | 1.33 |
destruc
|
1.02 | 1.09 | 256 | 1.12 |
diviter
|
1.05 | 1.02 | 303 | 1.06 |
divrec
|
1.07 | 379 | 1.03 | 1.02 |
puzzle
|
1.01 | 141 | 1.23 | 1.24 |
takl
|
1.01 | 136 | 2.21 | 1.03 |
trav1
|
179 | 1.02 | 1.31 | 1.03 |
trav2
|
676 | 1.00 | 1.00 | 1.01 |
triangl
|
1.01 | 259 | 1.05 | 1.07 |
fft
|
1.11 | 1.04 | 73 | 1.05 |
fib
|
1.52 | 1.49 | 148 | 1.12 |
fibfp
|
1.06 | 1.09 | 157 | 1.05 |
mbrot
|
1.02 | 154 | 1.01 | 1.01 |
nucleic
|
1.02 | 52 | 1.44 | 1.02 |
pnpoly
|
1.13 | 53 | 1.34 | 1.02 |
sum
|
1.45 | 1.42 | 60 | 1.13 |
sumfp
|
1.04 | 1.00 | 688 | 1.20 |
tak
|
1.30 | 1.24 | 189 | 1.12 |
tfib
|
1.07 | 1.01 | 1.55 | 401 |
ack
|
1.09 | 1.10 | 1.02 | 143 |
array1
|
73 | 1.03 | 1.01 | 1.15 |
cat
|
1.16 | 1.11 | 258 | 1.21 |
string
|
1.06 | 1.03 | 181 | 181 |
sum1
|
1.22 | 1.18 | 1.61 | 348 |
sumloop
|
1.01 | 1514 | 1.01 | 1.03 |
tail
|
1.18 | 1.06 | 255 | 1.16 |
wc
|
1.11 | 1.09 | 140 | 1.15 |
conform
|
1.03 | 193 | 2.78 | 1.08 |
dynamic
|
1.18 | 1.15 | 1.47 | 154 |
earley
|
1.03 | 207 | 1.02 | 1.05 |
fibc
|
203 | 1.00 | 1.27 | 1.13 |
graphs
|
1.00 | 265 | 1.94 | 1.15 |
lattice
|
1.01 | 407 | 2.38 | 1.08 |
matrix
|
1.01 | 313 | 1.88 | 1.04 |
maze
|
1.01 | 146 | 2.17 | 1.03 |
mazefun
|
1.01 | 1.04 | 1.81 | 241 |
nqueens
|
266 | 1.00 | 1.03 | 1.08 |
paraffins
|
1.03 | 1.00 | 897 | 1.03 |
peval
|
1.05 | 1.07 | 1.65 | 246 |
pi
|
1.00 | 337 | 1.58 | 1.01 |
primes
|
450 | 1.02 | 1.04 | 1.02 |
ray
|
1.07 | 1.12 | 1.27 | 56 |
scheme
|
1.04 | 275 | 3.63 | 1.07 |
simplex
|
85 | 1.04 | 1.01 | 1.06 |
slatex
|
1.02 | 1.01 | 1.11 | 136 |
perm9
|
1.01 | 1.05 | 327 | 1.02 |
nboyer
|
1.05 | 1.03 | 288 | 1.31 |
sboyer
|
206 | 1.01 | 1.03 | 1.04 |
gcbench
|
1.05 | 1.03 | 622 | 1.18 |