Lock-Free Hash Table
Closed this issue · 4 comments
Nyanyan commented
HyattらのLock-Freeハッシュテーブルを試してみたい
keyとして
player ^ value
opponent ^ best_move1 ^ (best_move2 << 8)
あたりを登録すれば良さそう
Nyanyan commented
keyは
player ^ lower
opponent ^ upper
としよう
Nyanyan commented
なんかwrong score / wrong policyのバグがある。
ノードの探索深さとmpcレベルも含めて、keyを
player ^ lower ^ (depth << 8)
opponent ^ upper ^ (mpc_level << 8)
とするか。最善手情報についてはミスっていても致命的な問題にはならないので一旦保留で良いが、
player ^ lower ^ (depth << 8) ^ (moves[0] << 16)
opponent ^ upper ^ (mpc_level << 8) ^ (moves[1] << 16)
も検討しよう。
Nyanyan commented
いや、本来であればplayerとopponentの各キーに対して全ての(間違えると致命的な)情報をxorしておくべきでは??
player ^ lower ^ (upper << 8) ^ (depth << 16) ^ (mpc_level << 24)
opponent ^ lower ^ (upper << 8) ^ (depth << 16) ^ (mpc_level << 24)
をキーとしなければいけないはず。
Nyanyan commented
よく考えたらkeyのビットとvalueのビットの双方同じところが反転したデータに対してはバグる可能性があるので、lock-freeなハッシュテーブルは良くないような気がする。元の実装(を若干リファクタリングしたもの)に戻す。