|
DATABASE COMPARISON AMONG CURRENT CHECKERS
PROGRAMS
| Program |
4 vs. 4 DB Info
(8-piece DB) |
4 vs. 3 DB Info
(7-piece DB) |
| WCC |
3,623,115,148 bytes |
295,351,129 bytes |
| 3.374 Gigabytes |
281.668 Megabytes |
| 30.741 positions/byte |
64.517 positions/byte |
| 32,234,376 positions/Megabyte |
67,651,297 positions/Megabyte |
| Wyllie |
4,168,492,926 bytes |
310,809,601 bytes |
| 3.882 Gigabytes |
296.411 Megabytes |
| 26.719 positions/byte |
61.308 positions/byte |
| 28,017,046 positions/Megabyte |
64,286,582 positions/Megabyte |
| White Doctor |
4,168,492,926 bytes |
310,809,601 bytes |
| 3.882 Gigabytes |
296.411 Megabytes |
| 26.719 positions/byte |
61.308 positions/byte |
| 28,017,046 positions/Megabyte |
64,286,582 positions/Megabyte |
| Cake++ |
4,237,944,978 bytes |
333,807,490 bytes |
| 3.946 Gigabytes |
318.343 Megabytes |
| 26.281 positions/byte |
57.084 positions/byte |
| 27,557,898 positions/Megabyte |
59,857,515 positions/Megabyte |
| Kingsrow |
4,237,944,978 bytes |
333,807,490 bytes |
| 3.946 Gigabytes |
318.343 Megabytes |
| 26.281 positions/byte |
57.084 positions/byte |
| 27,557,898 positions/Megabyte |
59,857,515 positions/Megabyte |
| Nemesis |
4,377,529,266 bytes?* |
326,395,689 bytes?* |
| 4.076 Gigabytes?* |
311.275 Megabytes?* |
| 25.443 positions/byte?* |
58.380 positions/byte?* |
| 26,679,172 positions/Megabyte?* |
61,216,761 positions/Megabyte?* |
There are 111,378,534,401 positions featuring
4 against 4 in the 8-piece database. There are 19,055,258,760 positions featuring
4 against 3 in the 7-piece database.
Many different programs have 7- and 8-piece
databases. But not all of these databases are the same!
They contain the same positions and the same
information, but this information is expressed in a different fashion.
The WCC team built their databases so as to optimize performance (speed)
while reducing the amount of memory required to access the databases.
How much better is WCC on my machine with
X megs of RAM than Program Z on my machine with the same amount of RAM ?
The table above can help answer that question.
With more RAM you can probe more of the 8-piece database without needing
to access it from disk, which is 10,000 times slower that RAM access.
So, which program will give you the best
performance on any machine? The one with the smallest 8-piece database!
The reason is very simple. Let's say you have
200 Megabytes of RAM that can be used for loading an 8-piece database. From
the table, you see that WCC can load 32,234,376 unique 8-piece database positions
into each megabyte of RAM. So, WCC will be able to handle a total of 6,446,875,200
positions in its RAM-based buffer without having to make a single call to
its disk caching algorithm. Other programs will only be able to store 5,511,579,600
positions in the same amount of RAM.
What does this mean? In this example, WCC would
have access to 935,295,600 (almost a billion!) more positions in RAM than
other programs. These positions will not have to be loaded from disk, so
the performance advantage is obvious.
WCC is the best!
* The size of the Nemesis 4x4 and 4x3 databases
had to be estimated since the program includes the 5x3, 6x2, and 7x1 data
mixed in with the 4x4 database. The 5x2 and 6x1 data are also mixed in with
the 4x3 data. The total size of these databases is 5,451,271,090 bytes, or
5.076 GB. The "lopsided" data combined with the 4x3 data in the Nemesis
databases probably constitutes 1 GB, or 1,073,741,824 bytes. Subtracting
that from 5,451,271,090 we get 4,377,529,266 bytes for the 4x4 database.
Dividing 4,377,529,266 by 4,168,492,926 (the size of the Chinook 4x4 database)
we get a ratio of 1.0501467422. So, if the Nemesis 4x3 database is 1.0501467422
times as large as the Chinook database (if it obeys the same ratio) we get
326,395,689 bytes for the size of that database. |