readme
来自「开放源码的编译器open watcom 1.6.0版的源代码」· 代码 · 共 58 行
TXT
58 行
FHOURSTONES 1.0
This benchmark is distilled from my pet application `c4', a connect-4
solver. It features a streamlined implementation of exhaustive
alpha-beta search using the history heuristic and a space optimized
hashtable.
Some technical bits:
Of the full 49 bit lock that describes a connect-4 position, only 32 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 a million
hash table entries are required. The benchmark uses just over 5Mb,
unlikely to fit into any sort of cache in the foreseeable future. This
makes the Fhourstones measure relatively immune to huge cache sizes.
The potentially expensive modulo operations are implemented with repeated
table lookup. The use of small integer sizes is available as an option.
Although this benchmark, like nsieve, 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.
The benchmark input is a relatively difficult 12-ply position.
The output should look like:
Fhourstones 1.0
options: small ints
Solving 12-ply position after 444333377755 . . .
score = 7 (+) work = 21
3871322 pos / 98.7 sec = 39.2 Kpos/sec
store rate = 0.914
- 0.211 < 0.422 = 0.059 > 0.054 + 0.254
56765 376940 173046 174816 121323 70603 38079 19252
9741 4853 2393 1147 537 291 116 54
30 16 3 2 3 1 0 0
0 0 0 0 0 0 0 0
The first line identifies the benchmark and version number. Line 2 shows
which program-specific options are active. Currently, two are supported:
-DSMALL makes the program use chars and shorts in moderately sized arrays
of small integers, while -DMOD64 computes the modulo hash function
directly with 64 bit integers. The latter is only advised on machines
with hardware integer divide (64/64->64) or multiply (64x64->128). The 3rd
line says which position is being solved (input ends with =), or tested
for a 1st player win (+) or for a 2nd player win (-). Due to the
transposition table and history heuristic, the reduced searches are not
necessarily faster. The next line indicates the score of the position and
a logarithmic measure of difficulty on a scale from 0 to 31. The fifth
line shows the machine performance; of all the output, only the last 2
numbers on this line should differ from the above output. The store rate
gives the percentage of positions actually entered in the transposition
table versus those offered to it. The rest of the output shows the final
distribution of positions in the transposition table with respect to score
(line 7) and work (lines 8-11).
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?