2007-09-25から1日間の記事一覧

Crafty CHESSの並列探索のコードを読む

一応並列化を取り組んでみてから読むと格段に判りやすいですね。 コードを読んで流れをメモっておきます。言葉で説明すると、予めプロセッサ(コア)の数だけスレッドを起動しておいて、 アイドリングさせておく。 反復深化で、local[0]をCPU#0に投下する。 …

並列化のバグ修正

案の定並列化でバグ発見(別スレッドへ、差分駒割をコピーしてなかった) シングルスレッド探索と時間も変わらないし、大差ない読み筋になってしまった。 NPSも若干違うだけ。 明日は、ルートより深いところで分割してみましょう。 あと、暇になったスレッド…

スレッドへのCPUの割り当て

SetThreadAffinityMask( hThread, 1 );//CPU#1のみ SetThreadAffinityMask( hThread, 2 );//CPU#2のみ SetThreadAffinityMask( hThread, 4 );//CPU#3のみ SetThreadAffinityMask( hThread, 8 );//CPU#4のみ 逆にCPU#1とCPU#2で動かしたい場合は SetThreadAff…

非常に原始的な並列探索が動いた!

探索コードをclassで囲う処理を以前やってましたが、 その後bitboard化したら改修してる部分がそのままでしたので、かなり時間がかかりました。 その後も、スレッド投入の時点で変数の破壊(?)などがあり、 コードを見直し、見直し、結局、月曜日の半分は…