April 12, 2015
Possible to add 150 ELO to Deep Saros 2.3f for Android?
I won't repeat the endless discussions about how we must call the protocol option that sets the number of parallel searches will use the engine. It has never come to a common agreement. Engine programmers still use different namings that not all GUI's interpret correctly.
The last case i had encountered was almost one year ago with Gaviota for Android where Miguel Balicora used Cores that Chess for Android was prepared for but Droidfish was not. The same binary could run on quad cores when loaded into CfA but when loaded into Droidfish it was delivering one third of the kNps expected. Just because of one word in the source code.
I'd come to a double solution with kind help from both authors. Miguel compiled a version which sends Threads command instead of Cores (version 1.0d) while Peter Österlund added the option to understand Cores command into Droidfish.
Today i've noticed Deep Saros 2.3f may be suffering from the same issue because it uses none of the above namings but "cpus". I'm not sure if multi threaded search will run if Chess for Android understands it. Porting SMP functionaly to Android seems tricky sometimes but it's worth giving a try.
One solution is to set the GUI to understand "cpus" command. Another easier solution, just the same as we'd found with Gaviota, is to change the command in the source code from "cpus" to "threads" so that the GUI's can use it.
I think there's a chance to add about 150 ELO to Deep Saros 2.3f and push it above 3000 if it's only a naming issue which prevents using all the cores. I hope Jim Ablett will give a hand on the question.
P.S.: In case you don't agree with +150 ELO, you are absolutely right. The reason for me to go wrong deliberately was only to attract attention to the subject. Now the truth is that if Deep Saros coıuld go 4 threads from 1, it would gain roughly: log (3 to 4 times more knps) / log2 x 60 = 95 to 120 ELO more.