TCEC Season 17 Rules

From TCEC wiki
Revision as of 18:58, 31 December 2019 by Aloril (talk | contribs) (Updated settings information)
Jump to: navigation, search

TCEC Season 17 - Rules & Information

This is a temporary version!! The page below is not yet final.



Rules

1. Season

a. The Top Chess Engine Championship (TCEC) Season 17 is the premier championship for chess software. It is a tournament between engines with ELO 3000+ and is divided into two competitions consisting of 7 Events, together making up four Leagues, the Premier Division entrance playoff, the Premier Division and the Superfinal.
b. Each of the Leagues, the Playoff, the Division and the Superfinal, is hereafter called: an Event.
c. TCEC Season 17 runs 24/7 until all its games have been played. One game is played at a time - the next one starts automatically.
d. As soon as an Event starts, it will run 24/7 until all its games have been played. One game is played at a time - the next one starts automatically.
e. There will be a short break between the Events, to test and make sure everything is ok with the TCEC game server and to prepare for the next Event.

2. Two Competitions

a: The first trajectory of the TCEC Season 17 is split into two separate competitions, each consisting of one or more leagues.
b: The two competitions are split according to the type of chess engines playing: one is for Minimax/AlphaBeta/Traditional engines, hereafter called AB-competition, and one is for Neural Network engines, hereafter called the NN-competition.
c. The top 4 engines of each competition will eventually compete in the Premier Division entrance playoff Event.

3. Qualification League

a. The Qualification League Event is part of the AB-competition.
b. For the Qualification League Event, engines will be invited by the organizers.
c. The Qualification League or QL consists of up to 16 engines recently submitted by their authors, all of which are under active development.
d. It is a 1x double round robin at TC 30+5 with a randomized 4-move opening book.
e. The top 6 engines promote to League 2.

4. League 2

a. The League 2 Event is part of the AB-competition.
b. League 2 or L2 consists of 16 engines including the 6 promotions from QL.
c. It is a 1x double round robin at TC 30+5 with a randomized 6-move opening book.
d. The bottom 6 engines relegate and the top 4 promote to League 1.

5. Two League 1 Events

a. There are two League 1 Events, one is part of the AB-competition and one is part of the NN-competition.
b. These Leagues are called AB-League 1 and NN-League 1 respectively.
c. AB-League 1 or ABL1 consists of 16 engines including the 4 promotions from L2.
d. The AB-League 1 Event is a 1x double round robin at TC 45+5 with a randomized 8-move opening book.
e. Of AB-League 1 the bottom 4 engines relegate and the top 3 will play in the DivP Entrance playoff.
f. NN-League 1 or NNL1 consists of up to 16 engines invited by the organizers.
d. The NN-League 1 Event is a 3x double round robin at TC 45+5 with a randomized 8-move opening book.
g. Of NN-League 1 the top 3 will play in the DivP Entrance Playoff.

6. Premier Division entrance playoff Event

a. In the Premier Division entrance playoff Event, or DivP entrance playoff and will feature 6 engines, consisting of the top 3 engines of both League 1 Events.
b. The DivP playoff Event consists of a 2x double round robin at TC 60+5 with a randomized 8-move opening book.
c. The DivP Playoff Event will start immediately after League 1 finishes, to determine which 4 engines will promote to Premier Division.
d. In the DivP Playoff Event no updates after the respective League 1 events are allowed.

7. Premier Division

a. Premier Division consists of the 10 engines: the 6 engines that qualified from previous Season plus the top 4 engines from the Premier Division entrance playoff Event.
b. It is a 3x double round robin at TC 90+5 with a randomized 8-move opening book (different from the 8-move book of League 1).
c. The top 2 engines promote to the Superfinal and the bottom 2 engines are relegated back to League1.

8. Superfinal

a. The Superfinal consists of 100 games at TC 120+10, with 50 different openings, among them once the normal start position, so that each engine plays both black and white of the same opening position. The match will be presented with opening 1 used in games 1 and 2, then opening 2 used in games 3 and 4 etc.
b. If the match is theoretically won for one side before game 100, the match will still continue until all 100 games have been played.
c. In the case of a drawn match there will be a rapid match of 16 games with a time control of 25' + 10" with random openings selected from earlier in the same Season.
d. In case it is still tied there will be sets of Blitz matches of 8 games each, with a time control of 3' + 2" until a winner is found.
e. When the Superfinal is over, the current Season ends.

9. The TCEC Grand Champion

a. The winner of the Superfinal will be crowned the TCEC Grand Champion and will keep this title until there is a winner in the next Superfinal.
b. There is no automatic qualification for the reigning Grand Champion, it will have to go all the way through the Premier Division of the next Season for it to be able to defend the title.

10. Time control

a. Different classical time controls will be used throughout the season and the time control is increased as the season progresses.
b. For the Qualification League and League 2 Events, the time control is 30 minutes + 5 seconds added per move for the whole game.
c. For League 1 Events, the time control is 45 minutes + 5 seconds added per move for the whole game.
d. For the DivP playoff Event, the time control is 60 minutes + 5 seconds added per move for the whole game.
e. For Premier Division, the time control is 90 minutes + 5 seconds added per move for the whole game.
f. For the Superfinal, the time control is 120 minutes + 10 seconds added per move for the whole game.

11. Game adjudication

a. A game can be drawn by the normal 3-fold repetition rule or the 50-move rule.
b. However, a game can also be drawn at move 35 or later if the eval from both playing engines are within +0.08 to -0.08 pawns for the last 5 moves, or 10 plies. If there is a pawn advance, or a capture of any kind, this special draw rule will reset and start over. On the GUI interface, this rule is shown as "TCEC draw rule" with a number indicating how many plies there are left until it becomes official.
c. A game will adjudicate as won for one side if both playing engines have an eval of at least 10.00 pawns (or -10.00 in case of a black win) for 5 consecutive moves, or 10 plies - this rule is in effect as soon as the game starts. On the GUI interface, this rule is shown as "TCEC win rule" with a number indicating how many plies there are left until it becomes official.
d. Cutechess will automatically adjudicate endgame positions with 6-men Syzygy tablebases.

12. Tiebreaks

a. If necessary, tiebreaks shall be used to determine advancement.
b. For all Events except the Superfinal, the first tiebreak criterion is the "crash" tiebreak, meaning that if an engine has crashed once or more during this Event, it will fail qualification versus another engine that has not crashed or crashed less in the same event, if both of them have the same amount of points in the final result.
c. In case of still being tied, then the direct encounter between the tied engines decides.
d. The next criterion is the greatest number of wins.
e. The Sonneborn-Berger is the next criterion.
f. If they are still tied, then the tournament organizers will decide which engine gets the promotion.

13. Engine Updates

a. Except for the DivP playoff Event (see 13.f), all engines that promote to the next Event are allowed to update before the Event's submission deadline, no matter if it is to fix bugs uncovered during the previous Event, or to submit a better version.
b. Promoting engines may update UCI/xboard settings.
c. The deadline for engine submission is the last game of the current Event unless the programmer is given a specific deadline from the Tournament Director - the goal is to be able to start the next Event as soon as possible without any significant delay.
d. Note that despite testing between Events will be provided, engine authors update at their own risk.
e. Once an Event is being played, no updates are allowed during it.
f. For the DivP playoff Event, the League 1 versions will compete, and no separate updating is allowed.

14. Engine Ratings

a. The TCEC engine ratings can be found at https://tcec.chessdom.com/ordo.txt
b. This list is updated live after every official game and includes all games, including rapid or faster time control games from current and previous season.
c. Most testing games with sufficiently long time control are also used.
d. Version numbers are ignored and all games are included, including games lost on time or due to crash.
e. New engines are assigned a temporary rating based on testing, until an official rating can be calculated after they played in an Event.

15. Crashes

a. If an engine loses on time, the result will not be changed or the game replayed.
b. In case of a server disconnect, or time loss due to lag, or other interruptions not caused by the engines there are five possible scenarios:
i. If the web server crashes, the game continues unaffected, and broadcasting will be resumed as soon as possible;
ii. If the evaluation of both engines is more than ABS(10) at the moment of game server interruption, the game is scored as a win;
iii. If the evaluation of both engines is less than ABS(0.10) at the moment of game server interruption, and both engines have completed 35 moves, the game is scored as a draw;
iv. If a game interrupts with 7 pieces on the board, position on the board at the instant of game server interruption will be adjudicated according to 7-man EGTB;
v. In all other cases the game is restarted from the position that the two engines reached before the disconnect, with time compensation to fill up the cache.
c. An engine that crashes 3 times during an Event is disqualified and all its game results (points) will be annulled, also for its opponents.
d. In case of disqualification crashes are counted for all engines until the end of an event.
e. Crash counting is only reset at the next Event.
f. Crashes during the Superfinal are counted as losses.

Further information

Engine Specific Configuration

UCI and Xboard (Winboard) engines are supported. To identify the protocol an engine is using you can hover over the king figure placed above the engine logo during a game. This info will be saved for the archive, but does not work for Season 5 or older games.

Compiles

Many engines come with different executable files. 64-bit executables are always preferred over 32-bit. Also, compiles that support SSE 4.2, AVX/AVX2 or similar instruction sets are preferred. Author can also submit update.sh script that is then used to download/clone and compile engine. Not stripping optimized executable of debugging information is recommended.

Large Pages

Large pages are automatically in use, nothing needs to be done by engines.

Number of Cores / Threads

Each engine can use up to 176 cores of the processors, if this is supported. Some engines have a prefix like "deep", but this has been omitted from the engine name to make it shorter. When watching a game you can see the number of cores that are in use by hovering over the king figure above the engine logos.

Split Depth

The split depth parameter basically defines the minimum depth for work to be split between threads. If no specific settings are given from the programmer, the default value will be used.

Main Hash Size

Each engine is allowed to use up to 128GiB of hash but 64GiB maximum is recommended. Not all engines support this much hash, so the maximum for that engine will be used in this case, typically 2 GiB or 8 GiB MB. Author preference for Hash size is always used up to 128GiB limit. When watching a game you can see the size of the hash that is in use for the engines currently playing by clicking the gears next to the engine logo.

Minor Hash Sizes

Some engines have an option to configure the size of other hash tables, often called pawn hash or evaluation hash. The combined, total limit for hash types like these is 256 GiB.

Own Opening Book

All opening books shipped with the engines are removed and/or disabled and any engine found to be using hidden, internal opening books will be disqualified and replaced with another engine chosen by the Tournament Director.

Endgame Tablebases

For all divisions, 5-men Nalimov/Gaviota/Scorpio, and 6-men Syzygy are available and cached in RAM if enough free RAM is available. When watching a game you can see the type of the tablebases (if any) that is in use for the engines currently playing by clicking the gears next to the engine logo.

Ponder / Permanent Brain

Basically this means that the engines can think during their opponents turn. It is not allowed so it will be disabled because of performance limitations with only 1 computer. This might change in a future Season of TCEC.

Contempt / Draw Score

Some engines have a setting that can adjust their own view of the positions throughout a game to avoid draws. This setting is not changed from the default unless it is a request from the programmer.

Other Settings

Any configurable option not described above, is not normally adjusted in any way, except if the programmer of an engine wants specific settings for each specific Division. :Options like "keep hash tables" or similar is usually enabled.

TCEC Hardware

Thanks to the devoted audience for it's support! Because of them, the server was upgraded for Season 10 and on, allowing TCEC to use a powerful 44 cores machine for all divisions.

Current TCEC CPU server

  • CPUs: 4 x Intel Xeon 4xE5-4669v4
  • Cores: 88 physical / 176 threads
  • RAM: 128 GB DDR4 (available to engines)
  • RAM: 1 TB (available to 6-pieces Syzygy)
  • HDD: 15 GB total
  • OS: CentOS Linux release 7.7.1908 (Core)

Previous Season 16

  • CPUs: 2 x Intel Xeon E5 2699 v4 @ 2.8 GHz
  • Cores: 44 physical
  • Motherboard: Supermicro X10DRL-i
  • RAM: 64 GB DDR4 ECC
  • SSD: Crucial CT250M500 240 GB
  • Chassis: Supermicro
  • OS: Windows Server 2012 R2

Current TCEC GPU Server

  • to be announced

Previous Season 16

  • GPUs: 1 x 2080 ti + 1 x 2080
  • CPU: Quad Core i5 2600k
  • RAM: 16 GB DDR3-2133
  • SSD:Samsung 840 Pro 256 GB

Earlier Seasons

  • CPUs: 2 x Intel Xeon E5-2689 @ 3300 MHz
  • Cores: 16 physical
  • CPU Coolers: 2 x Corsair H80i
  • Motherboard: Asus Z9PE-D8 WS
  • RAM: 64 GB Kingston KVR16R11D4K4/32 Reg/ECC
  • PSU: Corsair AX 760
  • SSD: Samsung 840 Pro 128 GB
  • Chassis: Silverstone Raven RV03B-WA
  • OS: Windows 7 Professional

FAQ

Is this the official World Computer Chess Championship?

No, it is not, although some people regard it as such.

Who is the reigning TCEC Grand Champion?

Stockfish defeated AllieStein in the Superfinal of Season 16, so Stockfish is the reigning TCEC Grand Champion.

Who is the winner of the TCEC Cup?

Stockfish won the TCEC Cup in a final match with LCZero. AllieStein came in third and Komodo made it to fourth place.

Did the engine move instantly?

Yes, some engines can move from hash, or move instantly (instamove of 0 seconds). However, sometimes it can seem that it moves instantly but in reality it doesn't, since there is a transmission delay from the playing server to the website. Refer to the "move time" for each engine to see how long it thought on its move.

Is there a special plugin required to view the games?

No, to view the games it is only required that you allow Javascript to run. The TCEC Web GUI has been developed by rcostheta and Arun Sathya on the latest Chrome, but will also run fine on the latest Firefox. There is no support for Internet Explorer versions below 9.

What are you using to play the games?

To play the games a special version of cutechess-cli is used. This is a command line tool without an actual GUI. This was made possible thanks to Jeremy Bernstein, Arun Sathya. Previously TCEC used ChessGUI by Matthias Gemuh.

Who is the author of the GUI?

The current web GUI is created by Ben Reese and Arun Sathya. Previous seasons used a GUI by Martin Thoresen, currently known as legacy GUI

What is the name of the web framework that displays the games?

For the current web GUI it is chessboard.js and cutechess-cli. For the legacy GUI and archive GUI it is called pgn4web and is totally free. Paolo Casaschi is the mastermind behind it and has helped a lot on certain difficult programming challenges.

Who is the author of the opening books used?

The author of the Superfinal book is Jeroen Noomen; the author of all the other books used is Nelson Hernandez, who in certain cases drew upon the work of Jeroen Noomen.