Hacker News new | ask | show | jobs
by systemvoltage 1602 days ago
How does Chess engine timing work? Do chess engines strategically use up their time depending on the complexity or the criticality of the position?

Do both chess engines have equal machine power, cores, IOPS, CPU model, RAM, etc?

They're showing a game with an eval bar. How does it evaluate the position, don't you need a chess engine to evaluate and provide a score in the first place? Perhaps we're seeing two chess engines play against each other with a third one evaluating for the viewers? Is it the average evaluation between the two engines?

3 comments

> Do chess engines strategically use up their time depending on the complexity or the criticality of the position?

Yes, this has been something engines have started to optimize. Some engines that don't do this well can be beaten by "flagging" (i.e. making pointless moves rapidly) once they run low on time.

> Do both chess engines have equal machine power, cores, IOPS, CPU model, RAM, etc?

Last I remember, the goal was to give engines roughly equal computational capacity. But it would be tailored to the engine, e.g. AlphaZero getting something with more GPU(s) and StockFish getting (at the time) more CPU(s) - at least for the final matches.

> They're showing a game with an eval bar

For me, it shows the current evaluation of both engines (numerically), as well as a graph with up to four engine evaluations (the two contestants + up to two "commentators").

To some extent it depends on the settings of the tournament because engines can work in the background and analyse position while it is not their turn. It is called ponder.

Time management is based on some heuristics built into the engine. Some positions that are being evaluated are more dynamic and engines have rules to evaluate positions which are settled down.

As for the hardware if 2 CPU engines are playing they have exactly the same resources. The problem arises when one engine is GPU based and the other is CPU. In this situations balancing the compute power is hard but even then they normally have the same time allocated.

For time management, the rough approach is to allocate a fixed % of the remaining time and increase or reduce it, mostly depending on the stability of the evaluation with increasing search depth.

Games are played on the same computer, with only one engine analyzing at a time.

The graph shows each engine's evaluation of the position for each move in the game. The red line is from a 3rd engine "observing" the game.