SICStus Prolog Homepage WELCOME TO
SICStus Prolog
Leading Prolog Technology
  SICStus Home > Performance Summary Download for Evaluation | Search 
Performance data for SICStus Prolog

Performance data for SICStus Prolog

Performance Summary

The SICStus Prolog compiler produces portable, optimized virtual machine code.

The table below shows performance for some platforms on the standard naive reverse benchmark (list of 30 elements, repeated 10000 times). The figures are in "Lips" (Logical Inferences Per Second). For more details on the benchmark, see the Prolog code.

Bytecode Lips (Naive Reverse)

The figures are sorted on Lips, descending values.

Hardware OS SICStus
version
Compiler MLips
AMD Opteron 1600 MHz Linux glibc 2.3 4.0 GCC 4.0.1 14.6
AMD Opteron 1600 MHz Linux glibc 2.3 3.12.7 GCC 4.0.1 12.1
Intel Xeon 2600 MHz Linux glibc 2.3 4.0 GCC 4.0.1 21.6
Intel Xeon 2600 MHz Linux glibc 2.3 3.12.7 GCC 4.0.1 20.7
Intel Core Solo 1500 MHz Mac OS X 10.7.1 3.12.6 GCC 4.0.1 12.7
Pentium 4 1700 MHz Windows 2000 3.8.5 MSVC 6.0 28.6
PowerPC G4 1250 MHz Mac OS X 10.3.5 3.11.2 GCC 3.3 10.06
Pentium III 600 MHz Linux 2.2.13 3.8.5 GCC 2.95.2 7.09
Pentium III 450 MHz Windows NT 4.0 3.8.5 MSVC 6.0 6.35
Power PC G4 500 MHz Mac OS X 10.1.3 3.9.1 GCC 2.95.2 5.57
Pentium II 450 MHz Linux 2.2.12-20 3.8.2 GCC 2.95.2 5.00
Pentium II 400 MHz FreeBSD 3.1 3.8.2 GCC 2.95.2  3.70
Pentium III 450 MHz Windows NT 4.0 3.8.2 MSVC 6.0 3.37
Alpha 21164 600 MHz Linux 2.0.30 3.7.1 GCC 2.x 2.82
PowerPC G3 266 MHz Mac OS X Server 3.8 GCC 2.7.2.1 2.70
Pentium II 266 MHz Windows NT 4.0 3.7.1 MSVC 5.0 1.95
Sun UltraSPARC 248 MHz SunOS 5.7 3.8.2 GCC 2.95.2 1.88
HP 9000/780 HP-UX 10.20 3.8.2 GCC 2.95.2 1.67
MIPS R4400 195 MHz IRIX 3.8.2 GCC 2.95.2 1.40
Sun Ultra-1 167MHz SunOS 5.6 3.8.2 GCC 2.95.2 1.24
AlphaStation 400 4/233 Digital UNIX V4.0 3.8.2 GCC 2.8.1 0.685

Other Prolog Benchmarks

Here are some numbers for benchmarks used in the Mercury project. This list contains links to the sources of the benchmarks:
  • crypt solves a cryptoarithmetic puzzle.
  • deriv symbolically differentiates four functions of a single variable.
  • poly symbolically raises 1+x+y+z to the tenth power.
  • primes finds all primes up to 100.
  • qsort quicksorts a list of 50 integers using difference lists.
  • queens finds all safe placements of 9 queens on a 9x9 chessboard.
  • query finds countries with approximately equal population density.
  • tak is an artificial benchmark, originally written in Lisp; it is heavily recursive and does lots of simple integer arithmetic.
The benchmarks use the following test harness:

Results

The benchmark results, in milliseconds per iteration, are as follows:

Hardware CPU
speed 
(MHz)
Operating
System
SICStus
version
crypt deriv poly primes qsort queens query tak
AMD Opteron 1600 Linux glibc 2.3 4.0 1.82 0.015 5.64 0.1366 0.0711 31.48 0.36 11.42
AMD Opteron 1600 Linux glibc 2.3 3.12.7 2.22 0.0182 6.72 0.1607 0.0857 38.01 0.613 14.89
Intel Xeon 2600 Linux glibc 2.3 4.0 1.15 0.0103 3.46 0.0858 0.0441 14.02 0.226 5.94
Intel Xeon 2600 Linux glibc 2.3 3.12.7 1.16 0.0103 3.48 0.0776 0.0429 17.74 0.378 6.02
Intel Core Solo 1500 Mac OS X 10.7.1 3.12.6 1.30 0.014 4.72 0.116 0.070 28.5 0.364 10.9
Pentium 4 1700 Windows 2000 3.8.2 2.58 0.012 5.08 0.111 0.059 24.8 0.344 8.30
PowerPC G4 1250 Mac OS X 10.3.5 3.11.2 2.42 0.040 7.20 0.290 0.150 43.0 0.900 16.2
Pentium III 600 Linux 3.8.2 4.50 0.040 14.0 0.290 0.160 71.2 1.19 26.3
Pentium III 450 Windows NT 4.0 3.8.5 5.23 0.040 17.4 0.323 0.190 94.1 1.30 31.2
Power PC G4 500 Mac OS X 10.1.3 3.9.1 4.17 0.040 13.9 0.370 0.160 90.7 1.25 32.8
Sun UltraSPARC 248 Solaris 7 3.8.2 5.72 0.040 13.8 0.500 0.190 76.0 1.99 17.1
PentiumPro 233 Linux 3.8.2 13.8 0.110 46.0 1.16 0.560 257 3.83 94.3
MIPS R4400 250 IRIX 6.5 3.8.2 19.3 0.170 78.1 1.590 0.760 322 5.51 124
HP 9000/780 n/a HP-UX 10.20 3.8.2 20.9 0.120 49.4 1.630 0.730 366 5.36 129
AlphaStation 400 4/233 233 DU 4.0 3.8.2 46.7 0.310 119 3.980 1.43 579 12.4 262

Some CLPFD Benchmarks

We do not maintain benchmark figures for the finite domain constraint solver, but the distribution comes with a number of demonstration program and a benchmark harness for these. To run the harness and view the performance figures, type the following:
| ?- load_files(library('clpfd/examples/bench')).
| ?- bench.