コンピューター将棋の構造 - 検索エンジン 「浅読みくん」 ⑦

今回のトピックは「並列化」です... これには2通りありますね。

①マルチコアのCPUを使用し検索作業を分担する。我のラップトップはインテルのCore2Duoなので2コアあります。「理論上」はこれで検索時間が半分になるはずですがそうは行きません。

②複数のマシンを使用し検索作業を分担する。

現在はマルチコアのマシンが主流と成りつつあるので②は

 「複数のマルチコアのCPUマシンを使用し検索作業を分担する」が現実ですね。

マルチコアのCPUを使用し検索作業を分担する

2コアは「2倍の計算能力」が有りますが「2倍の処理能力」は現実には無理です。各コアがマシンのリソース(メモリー等)を共有しているため片方がメモリーをアクセスしている時は待たなければならない等の無駄が生じます。現実には40%演算時間を軽減できれば万歳です。

複数のマシンを使用し検索作業を分担する

マシンを買う資金を調達する方が技術的問題よりもハードルが高いです。

上記のマルチコアの場合は各コアの検索結果を簡単に共有できますが、独立マシンの場合には情報の共有化・同期化、負荷の分担、等の問題を解決しないといけません。これも40%演算時間を軽減できれば万歳です(と思う)。

ここまできたら「全部入り」浅読み君で検証するのみです。

 「全部入り」 = ミニマックス・アルファ・ベータ・記憶装置付き...ですね。

1コア使用

5手読み TIME: 0.733000 sec. RATE: 880904.502046 nodes/sec
6手読み TIME: 2.683000 sec. RATE: 1425467.014536 nodes/sec
7手読み TIME: 9.703000 sec. RATE: 1858920.230856 nodes/sec
8手読み TIME: 42.947000 sec. RATE: 1845649.963909 nodes/sec
9手読み TIME: 225.046000 sec. RATE: 1927935.066609 nodes/sec

2コア使用

5手読み TIME: 0.562000 sec. RATE: 1148790.035587 nodes/sec
6手読み TIME: 1.810000 sec. RATE: 2113126.519337 nodes/sec
7手読み TIME: 6.256000 sec. RATE: 2905542.838875 nodes/sec
8手読み TIME: 24.710000 sec. RATE: 3215555.847835 nodes/sec
9手読み TIME: 147.966000 sec. RATE: 3240505.568847 nodes/sec

比較してみると...

7手読み 6.256000 / 9.703000 = 0.644749
8手読み 24.710000 / 42.947000 = 0.575360
9手読み 147.966000 / 225.046000 = 0.580154

...約4割の検索時間短縮に成功しました。4コアマシンなら更に短縮が可能でしょう。実際にコンピュータ将棋選手権の上位ソフトはハイスペックのマシンばかりです。

http://www.computer-shogi.org/wcsc19/team.html

...でも検索高速化はまだまだ奥がふか~いのですよ。我がまだ試していないテクはまだまだあります。それは後程に...ですね。

(続)

投稿者: 紫外線 投稿日時: 土, 08/15/2009 - 10:26 categories [ ]

返信

このフィールドの内容は非公開にされ、公表されることはありません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <hr>
  • 行と段落は自動的に折り返されます。

書式オプションに関するさらに詳しい情報...