This directory contains: Readme: This file gambc-v4_6_0.tgz: A gzipped tarfile of a modified version of Gambit-C suitable for benchmarking the double-precision, complex, direct fft code in bignum multiplication. TO BUILD GAMBIT-C: tar zxf gambc-v4_6_0.tgz cd gambc-v4_6_0 ./configure CC=gcc --enable-single-host Please, remember the --enable-single-host. The CC variable contains the compiler version. The default optimization options are -O1 -fschedule-insns2 For some versions of gcc, -fno-move-loop-invariants is added to the list of optimizations because move-loop-invariants takes too much compilation time. You can change the compiler and the options at configure time by, e.g., ./configure CC='gcc-4.5 -O2 -fschedule-insns' --enable-single-host Optimizations in the CC variable are added to the front of the options list. I find that on powerpc (32 and 64 bit) and on x86-64 -fschedule-insns offers the greatest benefit. TO BENCHMARK THE FFT CODE The following code is an accurate test only on 64-bit machines, unfortunately. (On 32-bit machines, a different algorithm is used internally.) In the Gambit-C build directory give the command gsi/gsi -e '(define a (expt 3 10000000))(set! *bench-bignum-fft* #t)(define b (* a a))' The output will look like: (time (direct-fft-recursive-4 a table)) 174 ms real time 180 ms cpu time (180 user, 0 system) no collections 16 bytes allocated no minor faults no major faults so it's easy to strip out the result. If that's too little CPU time to measure accurately, then try gsi/gsi -e '(define a (expt 3 100000000))(set! *bench-bignum-fft* #t)(define b (* a a))' (time (direct-fft-recursive-4 a table)) 3388 ms real time 3380 ms cpu time (3380 user, 0 system) no collections 16 bytes allocated no minor faults no major faults