GopherCheck 0.2.0 released

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

stephenjlovell
Posts: 7
Joined: Mon May 02, 2016 12:00 am
Location: USA

GopherCheck 0.2.0 released

Post by stephenjlovell »

Hello All,

I've recently released a new version of my engine, GopherCheck (v0.2.0).

Binaries for Mac, Windows, and Linux are now available on GitHub.
  • 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.
User avatar
Graham Banks
Posts: 45835
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: GopherCheck 0.2.0 released

Post by Graham Banks »

Looking forward to trying it out. :)
gbanksnz at gmail.com
thunderstruck
Posts: 50
Joined: Tue Jul 19, 2016 10:19 am

Re: GopherCheck 0.2.0 released

Post by thunderstruck »

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.
stephenjlovell
Posts: 7
Joined: Mon May 02, 2016 12:00 am
Location: USA

Re: GopherCheck 0.2.0 released

Post by stephenjlovell »

Thanks Antonio and Gabor. Will patch and post an updated release. It'll appear on the Releases page as 0.2.1:

https://github.com/stephenjlovell/gopher_check/releases
stephenjlovell
Posts: 7
Joined: Mon May 02, 2016 12:00 am
Location: USA

Re: GopherCheck 0.2.0 released

Post by stephenjlovell »

I've released an update (v0.2.1) that gets rid of the "0" default issue for CPU count. It's now available on the releases page.
User avatar
Graham Banks
Posts: 45835
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: GopherCheck 0.2.0 released

Post by Graham Banks »

stephenjlovell wrote:I've released an update (v0.2.1) that gets rid of the "0" default issue for CPU count. It's now available on the releases page.
Working well under ChessGUI. Will run a gauntlet starting tomorrow. :)
gbanksnz at gmail.com
stephenjlovell
Posts: 7
Joined: Mon May 02, 2016 12:00 am
Location: USA

Re: GopherCheck 0.2.0 released

Post by stephenjlovell »

Thanks Gabor.

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.

-Steve[/url]
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: GopherCheck 0.2.0 released

Post by MikeB »

stephenjlovell wrote:Hello All,

I've recently released a new version of my engine, GopherCheck (v0.2.0).

Binaries for Mac, Windows, and Linux are now available on GitHub.
  • 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.
from the latest mac binary

Code: Select all

uci
id name GopherCheck 0.2.2
id author Steve Lovell
option name Ponder type check default false
option name CPU type spin default 24 min 1 max 24
uciok
go depth 10
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xc4 pc=0x26d72]

goroutine 1 [running]:
panic(0x13d000, 0xc42000a0c0)
	/usr/local/go/src/runtime/panic.go:500 +0x1a1
main.(*UCIAdapter).start(0xc42008c2d0, 0xc42008c370, 0x2, 0x2, 0x1)
	/Users/slovell/go_projects/src/github.com/stephenjlovell/gopher_check/uci.go:341 +0x42
main.(*UCIAdapter).Read(0xc42008c2d0, 0xc42007be88)
	/Users/slovell/go_projects/src/github.com/stephenjlovell/gopher_check/uci.go:198 +0x343
main.main()
	/Users/slovell/go_projects/src/github.com/stephenjlovell/gopher_check/main.go:89 +0x286
logout

[Process completed]