FFOテスト結果 (Ver1.4.0)

本ページにはMasterReversiの'速さ'の検証のために行ったFFOテスト結果を掲載しています。
評価ルーチンが同一のため、テストではバッチ処理が可能なMRSolver(Ver1.4.0)をキャッシュサイズ512MBで使用しています。
MRSolverはProfessional版に付属するコンソールアプリケーションです。

FFOテストについて
FFOテストはFrench Federation of Othelloで作成され、終盤解析用ベンチマークとして広く用いられています。
テストでは、終盤解析が比較的困難な局面を対象として最善手探索に要する処理時間を計測します。

測定内容
Ver1.4.0では並列演算処理の高速化と64Bitネイティブ化を行ったため、その効果を検証することを主な目的として各種測定を行いました。
→シングル/マルチスレッド動作時の性能を比較しています。
→32/64Bit版の性能を比較しています。
→比較のため、知名度の高いScrZebra、及び、2010年のバージョンアップによって高速化されたEdax4.0.5との比較も行っています。


旧バージョンでは異なる観点に基づいた性能測定も実施しています。
興味のある方はVer1.0.2の測定結果Ver1.0.0の測定結果も合わせて参照してみて下さい。

測定結果
テスト64Bit版
4スレッド
64Bit版
1スレッド
32Bit版
4スレッド
32Bit版
1スレッド
ScrZebra
(32Bit 1スレッド)
Edax 64Bit版
4スレッド
Edax 64Bit版
1スレッド
Edax 32Bit版
4スレッド
Edax 32Bit版
1スレッド
FFO40 (20手読み +38)0.41.20.41.31.20.20.80.41.4
FFO41 (22手読み +00)1.01.81.01.81.70.51.40.92.7
FFO42 (22手読み +06)0.61.60.61.72.00.72.01.23.7
FFO43 (23手読み -12)2.24.72.34.92.02.06.33.812.5
FFO44 (23手読み -14)0.62.00.72.12.01.12.31.54.0
FFO45 (24手読み +06)7.522.27.622.733.65.920.811.440.8
FFO46 (24手読み -08)2.04.22.04.45.61.65.02.99.3
FFO47 (25手読み +04)1.11.41.11.42.20.71.41.12.5
FFO48 (25手読み +28)9.129.69.431.029.54.313.98.127.5
FFO49 (26手読み +16)8.931.09.231.428.67.723.913.645.8
FFO50 (26手読み +10)24.590.225.691.5166.923.886.747.6175.2
FFO51 (27手読み +06)6.525.06.926.628.89.131.718.661.0
FFO52 (27手読み +00)8.929.59.931.831.113.139.823.073.5
FFO53 (28手読み -02)67.6225.571.7239.3245.253.7179.9100.3338.4
FFO54 (28手読み -02)89.9365.995.4389.3376.476.3267.0142.2508.4
FFO55 (29手読み +00)307.51123.8322.11205.41347.9264.0967.0481.31882.6
FFO56 (29手読み +02)37.2103.237.9109.6150.039.6120.365.6225.5
FFO57 (30手読み -10)55.4201.357.9215.2235.577.2176.9113.9303.7
FFO58 (30手読み +04)52.5144.952.9153.8261.571.2181.3102.4318.8
FFO59 (34手読み +64)0.10.10.10.10.40.50.80.61.2
Total 683.5 2409.1 714.6 2565.4 2956.0 653.2 2129.1 1140.6 4038.6


・測定値の単位は秒です。
・素データはTotal性能にリンクしてあります。
・全ての測定はCore2Quad Q6600(クロック周波数2.4GHz)を使用して行っています。
・各測定値には単一測定の結果を使用しているため、OS等によるバックグラウンドタスクの影響から若干の誤差が含まれます。
・64Bit版の測定時には64Bit版Windows7、32Bit版の測定時には32Bit版WindowsVistaをOSとして使用しています。

測定結果について
・Total性能を見ると、4スレッド動作時には1スレッド動作時よりも約3.5倍高速に動作しているのが判ります。
→マルチスレッドでの局面探索時には、シングルスレッド時と比べて、無駄な探索が行われる可能性が高まります。
→一方で、複数の着手候補が同時探索されるため、シングルスレッド時には後回しにされる最善手を高速に発見できる可能性もあります。
→Ver1.4.0では極力無駄な探索が行われるのを防止し、後者の特徴も生かしつつ、マルチスレッド時の性能を高速化させています。

・32Bit版は64Bit版よりも若干低速ですが、その差は僅かです。
→Edax4.0.5では64Bit版と比較して32Bit版は非常に遅くなっています。
→これは、Edax4.0.5は64Bitモードでの動作を前提に開発され、32Bitモード用に最適化されていないためと思われます。
→MasterReversiは元々32Bitアプリとして開発され、最適化も行われていました。
→Ver1.4.0では64Bit版を追加しましたが、64Bit版は32Bit版をベースに64Bitモードに最適化させる形で開発しています。

・64Bit版では全般的にEdax4.0.5がVer1.4.0よりも少し高速ですが、FFO57,58ではVer1.4.0が高速です。
→Edax4.0.5はマルチスレッド時の探索アルゴリズムとしてYBWCというアルゴリズムを使っています。
→YBWCは無駄な探索を抑えられる優秀なアルゴリズムですが、探索順の順序付けが正しく行えない場合には性能的な被害は大きくなります。
→Ver1.4.0の探索アルゴリズムは無駄な探索を行う可能性は比較的高いですが、順序付けを間違った場合にも性能的な被害は少なくなります。
→上記のようなアルゴリズムの違いから、探索局面によっては、両者で顕著な性能差が現れるものと思われます。

・FFO48ではVer1.4.0の性能はEdaxよりも2倍以上遅くなっています。
→Edax4.0.5は確定石による探索のカットオフ処理を実施しています。
→この処理は石差が大きくないと有効には働かないため、実場面での効果は少ないと判断し、Ver1.4.0には同様処理は実装していません。
→FFO48では、石差が28あるため、この処理の実装の有無が性能差として現れています。

TOPページに戻る