From: aburto@nosc.mil (Alfred A. Aburto)
Subject: Re: Fhourstones connect-4 solver benchmark 
Organization: Naval Ocean Systems Center, San Diego
Distribution: comp.benchmarks 
Date: Sun, 20 Dec 1992 05:24:31 GMT
Expires: Sun, 10 Jan 1993 08:00:00 GMT

-------
John Tromp's Fhourstones connect-4 solver results are included below.

Fhourstones connect-4 solver benchmark is an implementation of the
well-known game played on a vertical board of 7 columns by 6 rows, where
2 players take turns in dropping 'stones' in a column. The first player
to get 4 stones in a horizontal, vertical, or diagonal row, wins the 
game. The game is drawn if there is no winner after 42 moves.

This Fhourstones implementation (software) is copyright (c) 1992 by 
John Tromp (tromp@cwi.nl).

Some technical notes:
Of the full 49 bit lock that describes a connect-4 position, only 32 bits
are stored in the hashtable entry while the remaining 17 are subsumed in
the hash-address. To also accomodate 8 fold probing, a minimum of one
million hash table entries are required. The benchmark uses just over
5 MBytes of memory. The potentially expensive modulo operations are
implemented with repeated table look-up. The use of small integer sizes
is available as an option ('-DSMALL' default). Although this benchmark
emphasizes random access performance, it also exercises standard scalar 
performance; the recursive alpha-beta calls, incremental threat table 
computations, history table updates, and move-reordering represent a fair 
mix of scalar operations. Fhourstones is an 'integer' type benchmark.

The Fhourstones program (c4.tar.Z.uue, c4.doc, and c4run.doc) and latest
results (c4.tbl) can be obtained via anonymous ftp from 'marlin.nosc.mil'
in directory 'pub/aburto'. The 'marlin' host (IP) number is: 128.49.16.4

Please send new results (new machines, compilers, compiler options) to:
aburto@marlin.nosc.mil. I will keep the results up-dated and post
periodically to 'comp.benchmarks'. Any comments are greatly appreciated
too.

Results as of 17 Dec 1992:
                                                         CPU    KPos/     
System                 OS, Compiler               CPU   (MHz)    sec   REF
---------------------- ----------------------- -------- ----- -------- ---
HP 9000/730            NOTE 001, HP-UX 8.07    PA-RISC   66.    76.903   6
SGI Indigo R4000       NOTE 002, Irix 4.0.5    R4000     50.0   75.848   9
SGI Crimson            NOTE 003, Irix 4.0.5    R4000     50.0   71.085   5
HP 9000/730            NOTE 004, 4.3 BSD       PA-RISC   66.    69.553   2
SGI Indigo R4000       NOTE 005, Irix 4.0.5    R4000     50.0   69.180   3
HP 9000/730            NOTE 006, 4.3 BSD       PA-RISC   66.    64.813   2
IBM RS6000/550         NOTE 007, AIX 3.2.2     RISC      42.    55.352   8
IBM RS6000/550         NOTE 008, AIX 3.2.2     RISC      42.    54.726   8
IBM RS6000/550         NOTE 009, AIX 3.2.2     RISC      42.    53.214   8
DECstation 5000/240    NOTE 010, Ultrix 4.2A   R3000     40.0   48.401   7
DECstation 5000/240    NOTE 011, Ultrix 4.2A   R3000     40.0   47.599   7
Pyramid MIS 12ES       NOTE 012, dcos/x 1.1    --------  33.    43.438   4
Sun SPARCstation 2     NOTE C01, SunOS 4.1.2   SPARC     40.0   42.867   1
Sun SPARCstation 2     NOTE C02, SunOS 4.1.2   SPARC     40.0   42.687   1
Sun SPARCstation 2     NOTE C03, SunOS 4.1.2   SPARC     40.0   41.600   1
SGI Indigo R3000       NOTE 013, Irix 4.0.2    R3000     33.    41.369   3
Sun SPARCserver 690MP  NOTE C02, SunOS 4.1.2   SPARC     40.0   40.188   1
Sun SPARCserver 690MP  NOTE C01, SunOS 4.1.2   SPARC     40.0   39.799   1
Vega 486               NOTE A01, MS DOS 5.0    80486DX   33.3   38.390   1
Vega 486               NOTE A02, MS DOS 5.0    80486DX   33.3   37.472   8
Vega 486               NOTE A03, MS DOS 5.0    80486DX   33.3   37.451   8
Vega 486               NOTE B01, MS DOS 5.0    80486DX   33.3   36.653  10
Sun SPARCstation 2     NOTE C04, SunOS 4.1.2   SPARC     40.0   36.552   1
Vega 486               NOTE A04, MS DOS 5.0    80486DX   33.3   36.350   1
Vega 486               NOTE A05, MS DOS 5.0    80486DX   33.3   35.978   1
Vega 486               NOTE A06, MS DOS 5.0    80486DX   33.3   35.812   1
Vega 486               NOTE B02, MS DOS 5.0    80486DX   33.3   35.739  10
Vega 486               NOTE B03, MS DOS 5.0    80486DX   33.3   35.438  10
Vega 486               NOTE A07, MS DOS 5.0    80486DX   33.3   35.257   1
Sun SPARCserver 690MP  NOTE C04, SunOS 4.1.2   SPARC     40.0   34.568   1
Vega 486               NOTE B04, MS DOS 5.0    80486DX   33.3   34.549  10
Sun SPARCserver 690MP  NOTE C05, SunOS 4.1.2   SPARC     40.0   34.090   1
Vega 486               NOTE B05, MS DOS 5.0    80486DX   33.3   33.059  10
Sun SPARCstation 2     NOTE C06, SunOS 4.1.2   SPARC     40.0   29.088   1
Sun SPARCserver 690MP  NOTE C06, SunOS 4.1.2   SPARC     40.0   28.336   1
Sun SPARCstation 1+    NOTE C02, SunOS 4.1.2   SPARC     25.0   26.886   1
Vega 486               NOTE B06, MS DOS 5.0    80486DX   33.3   26.656  10
Force SPARC-1E         NOTE 014, SunOS 4.1e    SPARC     --.-   21.667   1
Sun SPARCstation 1+    NOTE C06, SunOS 4.1.2   SPARC     25.0   20.744   1
Force SPARC-1E         NOTE 015, SunOS 4.1e    SPARC     --.-   20.715   1
Force SPARC-1E         NOTE 016, SunOS 4.1e    SPARC     --.-   20.485   1

NOTE:
A01  gcc 2.1, gcc -DUNIX -O -m486 -fomit-frame-pointer
A02  gcc 2.1, gcc -DUNIX -O -m486 -finline-functions -fomit-frame-ponter
A03  gcc 2.1, gcc -DUNIX -O2 -m486 -finline-functions -fomit-frame-ponter
A04  gcc 2.1, gcc -DUNIX -O -m486
A05  gcc 2.1, gcc -DUNIX -O -finline-functions
A06  gcc 2.1, gcc -DUNIX -O
A07  gcc 2.1, gcc -DUNIX -O2

B01  gcc 2.2.2, gcc -DUNIX -O -m486 -fomit-frame-pointer
B02  gcc 2.2.2, gcc -DUNIX -O2 -m486 -fomit-frame-pointer
B03  gcc 2.2.2, gcc -DUNIX -DSMALL -O -m486 -fomit-frame-pointer
B04  gcc 2.2.2, gcc -DUNIX -O
B05  gcc 2.2.2, gcc -DUNIX -DSMALL -O
B06  gcc 2.2.2, gcc -DUNIX -DSMALL -m486 -fomit-frame-pointer

C01  Sun C 2.0.1, cc -DUNIX -DSMALL -O4 -Bstatic
C02  Sun C 2.0.1, cc -DUNIX -DSMALL -fast -O4 -Bstatic
C03  Sun C 2.0.1, cc -DUNIX -O4 -Bstatic
C04  Sun C 2.0.1, cc -DUNIX -DSMALL -O4
C05  Sun C 2.0.1, cc -DUNIX -DSMALL -fast -O4
C06  Sun C 2.0.1, cc -DUNIX -DSMALL -O

001  cc -DSMALL +OS +O3
002  MIPS cc 3.10, cc -DUNIX -DSMALL -O3 -mips2
003  MIPS cc 3.10, cc -DUNIX -DSMALL -O3 -sopt
004  cc 8.71, optimizer 8.07.03, cc -DSMALL -O +DA1.1
005  MIPS cc 3.10, cc -DSMALL -O
006  gcc 2.3, gcc -DSMALL -O2 -mpa-risc-1-1
007  cc -DUNIX -DSMALL -O -Q
008  cc -DUNIX -DSMALL -O
009  cc -DUNIX -O -Q
010  cc -DUNIX -DSMALL -O2
011  gcc 2.2.2, gcc -DUNIX -DSMALL -O2
012  SVR4, cc -O
013  MIPS cc 2.10, cc -DSMALL -O
014  cc -DUNIX -DSMALL -O4 -Bstatic
015  cc -DUNIX -DSMALL -O -Bstatic
016  cc -DUNIX -DSMALL -O

REF:
1    Al Aburto, aburto@marlin.nosc.mil, 05 Dec 1992
2    Jeffrey A Law, law@schirf.cs.utah.edu, 06 Dec 1992
3    John Tromp, tromp@cwi.nl, 07 Dec 1992
4    Steve Croft, stevec@water.ca.gov, 07 Dec 1992
5    Michael T. Jones, mtj@sgi.com, 07 Dec 1992
6    Bo Thide', bt@irfu.se, 08 Dec 1992
7    Gustaf Neumann, neumann@dec4.wu-wien.ac.at, 12 Dec 1992
8    Al Aburto, aburto@marlin.nosc.mil, 12 Dec 1992
9    John Tromp, tromp@cwi.nl, 15 Dec 1992
10   Al Aburto, aburto@marlin.nosc.mil, 17 Dec 1992
     gcc 2.2.2 performs somewhat below gcc 2.1 in this case ...

Al Aburto
aburto@marlin.nosc.mil
-------