Implements memory recycling on a per-goroutine basis to reduce memory allocations and GC pressure.
Speed improvement of approx. 18% in nodes per second (NPS) over v0.1.1.
New UCI option to set number of search threads, defaulting to one search process (goroutine) per logical core.
Expanded time control options:
per-game
per-game plus time increment
fixed-depth
fixed time per move
Minor bug-fixes and optimizations
The source code and Readme can also be found on GitHub.
My best guess for engine strength is somewhere in the range of 2300-2500 ELO, but I don't have rigorous data yet.
I think there's an error in the source code that prevents the CPU option to display in some GUIS.
I compiled GopherCheck for Linux and I couldn't see the CPU option in Cutechess GUI.
The error is in file uci.go at line 258 : uci.Send(fmt.Sprintf("option name CPU type spin default 0 min 1 max %d\n", runtime.NumCPU()))
I changed the default from 0 to 1 and then the CPU option showed up in the GUI.
The default value 0 isn't between 1 and the maximum of cores(4 in my case) and therefore ignored by the GUI.
I've made one other minor revision this weekend (0.2.2) to fix an issue impacting games with very quick time controls.
The engine always tries to keep a small amount of time on the clock to avoid losing on time if the search were to take longer than expected to abort. This "safety margin" was very excessive at 500ms. It's reduced to 5ms in the latest build.
Implements memory recycling on a per-goroutine basis to reduce memory allocations and GC pressure.
Speed improvement of approx. 18% in nodes per second (NPS) over v0.1.1.
New UCI option to set number of search threads, defaulting to one search process (goroutine) per logical core.
Expanded time control options:
per-game
per-game plus time increment
fixed-depth
fixed time per move
Minor bug-fixes and optimizations
The source code and Readme can also be found on GitHub.
My best guess for engine strength is somewhere in the range of 2300-2500 ELO, but I don't have rigorous data yet.