I see two potential problems: IO, FEN parsing/validation.lucasart wrote:I think speed is key here, because the optimization process must run lots of iterations.
I wouldn't be surprised if the universal tuner ran order of magnitude slower than integrated native one, obviously people hate to waste time
so why wait for 1 parameter when you could do 10 in the same amount of time?
What comes to mind is batching; since you pre-split the fens to threads (I assume), you can send all fens to the engine only once, then tune many parameters/iterations.
This would reduce IO from tuner to engine to zero and would also get rid of FEN processing.
The drawback is slightly increased complexity on engine part.
Another thing which might be interesting to try is to use plain eval instead of qs (what Miguel did in Gaviota IIRC), by filtering out non-quiet positions.