FFOテスト結果 (Ver1.0.2)

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

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

測定内容
Ver1.0.2では評価演算処理の高速化を行ったため、その効果を検証することを主な目的として各種測定を行いました。
→SSE2命令による高速化を検証するためにアーキテクチャの異なる数種のCPUで測定を行いました。
→並列演算オーバーヘッドの軽量化を検証するためにCore2Quadによる最大4スレッドでの測定を行いました。
→旧バージョンからの性能向上比率を検証するためにVer1.0.0との性能比較を行いました。
→他アプリとの比較のために高速ツールとして知名度の高いScrZebra(-h 24指定)との性能比較を行いました。


マルチスレッド/ネットワーク分散の効果等、MasterReversiの性能傾向を知りたい場合にはVer1.0.0の測定結果も合わせて参照して下さい。

測定結果
CPUクロック製品名購入年OSメインメモリスレッド数Ver1.0.2Ver1.0.0ScrZebra
PentiumM (Banias)1.4GHzdynabook C9 (TOSHIBA)2003WindowsXP768MB 15058秒(1.000)5406秒(1.069)5457秒(1.079)
Athlon64 2800+ (ClawHammer)1.8GHzVALUESTAR TZ (NEC)2004WindowsXP1GB 13978秒(1.000)4260秒(1.071)4068秒(1.023)
Pentium4 640 (Prescott)3.2GHz712JP (Gateway)2005WindowsVista1GB 2 (HTT)4398秒(1.000)4860秒(1.105)4557秒(1.036)
CoreDuo T2500 (Yonah)2.0GHzMacBook (Apple)2006WindowsVista2GB 13624秒(1.000)3816秒(1.053)3867秒(1.067)
同上同上同上同上同上同上 22930秒(1.000)3088秒(1.054)同上(1.320)
Core2 Quad Q6600 (Kentsfield)2.4GHzGT5228j (Gateway)2007WindowsVista2GB 12719秒(1.000)3038秒(1.117)2956秒(1.087)
同上同上同上同上同上同上 22061秒(1.000)2286秒(1.109)同上(1.434)
同上同上同上同上同上同上 31506秒(1.000)1800秒(1.195)同上(1.963)
同上同上同上同上同上同上 41337秒(1.000)1737秒(1.300)同上(2.211)


・測定結果として示した時間はTest40-59までの全テストに要した時間です。各項目のリンクから素データを確認できます。
・各測定値には単一測定の結果を使用しているため、OS等によるバックグラウンドタスクの影響から若干の誤差が含まれます。
・ScrZebraはマルチスレッド対応アプリではないため、常にスレッド数1の測定値を比較対象としています。
・括弧内にはVer1.0.2に対する処理時間比を記載しています。1.00より大きい値はVer1.0.2の方が高速であることを示しています。
・Pentium4ではスレッド数を2としていますが、HTTに最適化オプションを指定しているため、実質的なスレッド数は1となります。
・Pentium4でHTTオプションを指定しない場合、より高速に処理できる可能性もありますが、より低速になる危険性が増加します。
・Pentium4でHTTオプションを指定した場合、最善手探索では1スレッド動作となり、全着手評価時には2スレッド動作となります。

測定結果について
・Ver1.0.2は全CPUでVer1.0.0よりも高速化されているのが判ります。ただし、高速化率はCPU毎に異なります。
→高速化率は、Core2Quad > Pentium4 > Athlon64 > PentiumM > CoreDuoの順に高くなっています。
→この違いは主にSSE2命令の処理速度の違いから発生しているものと考えられます。
→Ver1.0.2ではSSE2命令による高速化を行っており、高速にSSE2命令を処理できるCore2Quadの高速化率が最も高くなっています。

・Ver1.0.2はスレッド数1の場合にも全CPUでScrZebraよりも高速なのが判ります。ただし、その度合いはCPU毎に異なります。
→Ver1.0.0での比較からMasterReversiはCoreDuo > PentiumM > Core2Quad > Athlon64 > Pentium4の順で高速なのが判ります。
→この違いは主にスタックエンジンとパイプライン段数によるものと考えられます。(MasterReversiはスタックと関数コールを多用します)
→Ver1.0.2ではCore2Quadが最速ですが、これはスタックエンジンを装備し、SSE2命令のレイテンシが小さいためと考えられます。

・Ver1.0.2はスレッド数を増やした場合の性能向上率がVer1.0.0よりも高いのが判ります。その違いはスレッド数が多いほど顕著です。
→Core2Quadでの結果から性能向上率はVer1.0.0で1.00→1.33→1.69→1.75、Ver1.0.2で1.00→1.32→1.81→2.03であることが判ります。
→この違いはVer1.0.2で行った「並列演算オーバーヘッドの軽量化」によるものです。
→具体的には、Ver1.0.2では共有キャッシュに対する排他制御を見直し、アクセス衝突による性能劣化を抑制しています。

TOPページに戻る