Pio wrote:Hi Robert!
I understand what you mean and of course I have to agree with you.
I have one possible suggestion of why it might help searching with one thread to depth d and another to depth d+1. If your threads use the same history table then you might get some artifical aging that will be benificial and might help both the depth d search as well as the depth d+1 search.
I am just speculating but it might be the case that you will actually look at a quite different tree then if you do LMR based on your history table.
I might be very wrong and I have not finished my chess engine so be nice to me

If you do a serial search that is iterative you will get your baseline. If another thread is always doing depth + 1, the main thread is going to benefit from higher quality moves that were put in the hash table by the main thread from the previous iteration. Of course we would also expect the performance to increase due to moves already being searched.
Due to the way LMR work anything discovered by the deeper search in the previous iteration is going to have a beneficial change on the move ordering and hence you might not reduce some moves you would have ordinarily.
Another way to do this on a 4 core machine for example is start with a 1,2,3 and 4 ply search. When 1 search completes, it frees up a thread so immediately start the next un-started depth. Let's assume the 1 ply search completes and the 2,3 and 4 are still running - you would start a 5 ply search on the newly freed thread. The program reports that a 1 ply search is complete and all the accounting is focused on the 2 ply search at this point and so on.
You can do the same thing with half ply increments since it may be that 4 full ply iterations at the same time is not very efficient.
I suspect that stopping the other threads and moving to the next iteration has almost the same impact as keeping them all running in the fashion I describe because the hash table essentially records the state anyway when you stop. So your way of doing this may be simpler and just as good.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.