fastchess
fastchess copied to clipboard
Run games in separate processes
Currently, engines are run in different processes, but all python code runs in the same. This should be fine if running the engines takes up most of the work, but it seems a lot of time is actually spent in python-chess parsing things, arena checking for draws and whatnot, and occasionally in skopt.
To take better advantage of computers with multiple cpus we should run each encounter in a separate process.
This further has the advantage that more advanced time controls can be implemented without fear of engines timing out while another part of the code calls an expensive routine.