I guess that Damage sometimes is too optimistic with respect to the selective search, but so far it seems okish

If you have some new interesting thoughts, I'm looking forward to discuss these with you.
I downloaded this weekend a trial version of Visual Studio 2012 which motivated my to (re)do some profiling tests.
This gave me some clues how/where to optimize.
One of the things I want to change is to migrate from a move-based MoveGenerator towards a position based routine.
Think Ed is doing the same in KingsRow.
As a side-consequence you need to do "non-trivial" calculations for an incremental update of the Zobrist-based hash-function.
For this reason I now implemented a "on-the-fly" hashfunction based on CityHash.
Think Ed uses a Jenkins based Hash (like lookup2, lookup3, or SpookyHash).
Another idea which i didn't work out (so far) is to develop a hash based on the internal Intel CRC32 instruction (which seems to be fast, and could be used for a fast in-line hash function).
Next thing to do is to re-engineer the generator.
To avoid huge bugs I intend to run a 158 game match after every major iteration.
For me the 20% increase in speed is measured for the initial position and a 22-ply search. My goal is to reach 3MNodes/sec (1 core, total search time will be around 25 seconds).
As usual I will start with the non-parallel version, as single-core bugs seems to be more reproducible.
The profile also indicated 1 specific evaluation function call related to a specific pattern class which also takes far more time than i initially anticipated...
So work to do, and never a dull moment

Bert