Git Product home page Git Product logo

hgm-mailbox-trials's Introduction

Mailbox trials by H.G. Muller

I opened this thread to conduct a sort of blog on comparing the speed of
several experimental mailbox algorithms. The speed comparison of the various
techniques will be done for a toy 'model engine', which uses a fixed-depth search
plus capture-only quiescence (including delta pruning), with MVV/LVA sorting of the captures,
and an evaluation of PST plus (optionally) mobility.
No hash table, no killer or history heuristic,
so basically no particuar move ordering of the non-captures;
the time-to-depth is not really of interest here, we will be comparing nodes per second.
To not lose ourselves in details, promotion, castling and e.p. capture will be omitted.
The speed will be measured in a search of the KiwiPete position.

r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1

The first design to be tested will be the 16x12 mailbox + piece list.
We should already have a rough idea how this works, because
Qperft* (*super fast perft by H.G. Muller - note by CMK) uses this design.
It does a perft(6) of KiwiPete in 45 sec, with bulk counting.
That means it has done move generation in perft(5) nodes (193M nodes), which translates to 4.26 Mnps.
But because that is perft there are two effects that slow it down compared to a search:
there is some legality testing (on King moves), which a search based on pseudo-legal moves would not do.
But, more importantly, in perft all nodes are 'full width', while in a search most nodes are QS nodes.
Refraining from putting the non-captures in a move list would speed up move generation appreciably.
And QS nodes that experience a stand-pat cutoff will not have to generate moves at all.
(At least, if the evaluation doesn't include mobility.)
So the search should be significantly faster, perhaps even double.

We will see shortly...
read more...

How to compile it with GCC

gcc -Ofast mailbox7.c -o mailbox7

hgm-mailbox-trials's People

Contributors

maksimkorzh avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.