Bonanzaがehashから取ってきた評価値使って差分計算してるけど、ehashの値は別のスレッドから書き換えられてるかも知れないから差分評価全部ダメになるかも知れないのにちゃんと動いててすごい。。
2013-04-23 22:17:12@issei_y ロックしてないから書きかわっちゃうんじゃないんですか?あれ?私だけ何も分かってないのかな。。帰ったらちゃんと調べます。
2013-04-23 22:28:50@HiraokaTakuya つ http://t.co/97fvygxXq3 ehashはこれの応用だけど、64bitの書き換えがatomicなことを利用しているんですよ。
2013-04-23 22:32:20今のApery、正にehashみたいなのが壊れてるんだよね。実装方法がBonanzaと違うせいか。。直したら強くなるのかな。
2013-04-23 22:43:016コアで弱くなったとか騒いでたのは、もしかしたら並列度が上がってehashが壊れる確率が上がったからのような気しかしない。
2013-04-23 23:17:33transposition tableはehashよりテーブルが大きいし、差分評価もしてないから問題(あまり)無しか。
2013-04-24 00:07:40@RyosukeKubo はい、Bonanzaはうまいこと64bitでやりくりしてますね。私はhash keyだけで64bit使ってたのでそこのbit削ったら64bitに収まりました。
2013-04-24 00:27:06@HiraokaTakuya 僕もとりあえず、128bitでやってました。なるほどハッシュ値はテーブルのキーになる部分を除いてチェックできればいいから64bitフルで使う必要ないんだ....そうか...
2013-04-24 00:29:1932bit 環境でも前方と後方に散らせば lockless にできる気がする....そんなことはどうでもいいか。
2013-04-24 00:35:16@RyosukeKubo エントリーが64bitで収まらなくなってきたらkeyを散らせば良いんですね。なるほど覚えておこう。
2013-04-24 00:38:53@HiraokaTakuya 32bitだと64bitの値がatomicに読み書きできないというのがそれで解決しないかなと思っただけで、大きいエンティティを扱うならチェックサムを持たせるのが普通だと思います。
2013-04-24 00:42:46