What are useful statistics to gather during search?

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Posts: 65
Joined: Thu Jan 28, 2021 8:50 pm
Full name: Brian Adkins

What are useful statistics to gather during search?

Post by lojic » Sun Feb 21, 2021 5:55 pm

My current task is to collect enough useful statistics during search, so I can write enough tests to help ensure I can refactor my code w/o breaking anything or slowing/weakening the engine. If there are common practices for statistics, I'd like to follow them to allow me to more easily communicate with others i.e. to compare apples to apples.

As one example, number of nodes considered seems like an important stat. With iterative deepening, there are a number of different ways to count nodes i.e. resetting the counter before each fixed N-ply subsearch vs. a running counter, how the transposition table affects counts, etc.

I found the Search Statistics page on CPW, but it's a little light on details.

I'm guessing bespoke statistics are common, but I thought I'd check before getting deep into this task.

Posts: 4095
Joined: Fri Mar 10, 2006 4:23 am
Location: http://www.arasanchess.org

Re: What are useful statistics to gather during search?

Post by jdart » Mon Feb 22, 2021 3:28 am

See https://github.com/jdart1/arasan-chess/ ... rc/stats.h for what Arasan collects, or can collect, if the appropriate compile flags are set.

Among other things it can generate some move ordering statistics: how often the first move, or the second, third, or fourth, was selected as the best move by the search.

It also can generate a report on extensions and pruning: what % of nodes were extended, or pruned in a particular way.

Post Reply