+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++         << MRSolver HELP.txt >> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ このファイルにはMRSolverの使用方法に関する情報が記述されています。 =============================================================================================== 目 次 ===============================================================================================   1.MRSolverの概要   ・MRSolverとは?   ・MRSolverの特徴 2.使用方法 ・既定構成の編集 ・スクリプトファイルの編集 ・バッチファイルの編集 ・バッチファイルの実行 ・MRSolverコンソール ・評価データの変更 3.構成パラメータ ・Priority ・ThreadNum ・HyperThread ・CacheSize ・CacheClear ・CacheSave ・CachePath ・ProbeCutAccuracy ・TraceLevel ・Output_Board ・Output_Performance ・Output_Trace ・Network_MyName ・Network_MyProfile ・Network_MyPort ・Network_ConnectAddress ・Network_ConnectWaitSec ・Network_AliveCheckSec ・Network_SendTimeOutSec ・Network_SendRetryNum ・Network_WorkerUpdate ・Affinity_Mode ・Affinity_Physical ・Affinity_Control ・Affinity_Worker00_03..Affinity_Worker28_31 4.スクリプトファイル ・フォーマット ・盤面データ ・コメント(表示用) ・コメント(非表示用) 5.コマンドパラメータ ・モード (-m e/w/1..60) ・全着手フラグ (-a) ・ネットワークフラグ (-n) ・コメント指定 (-c コメント) ・構成ファイル指定 (-g ファイル) ・出力ファイル指定 (-o ファイル) ・スクリプトファイル指定 (-f ファイル) ・インストール (/Install) ・アンインストール (/Uninstall) ・情報表示 (/Info) ・CPUコア情報表示 (/CoreInfo) ・Affinity設定表示 (/AffinityInfo) =============================================================================================== 1.MRSolverの概要 =============================================================================================== ■ MRSolverとは? MRSolverは盤面データを受け取り、評価結果を出力するリバーシ用終盤解析プログラムです。  実行バイナリはコンソールアプリケーション形式のため、コマンドプロンプト上で使用できます。   一連の処理を行わせたい場合にはバッチファイルを記述して一括処理させることも可能です。 処理が固定的な場合にはスタートメニューに用意されたメニューを利用して操作の簡略化が行えます。 ■ MRSolverの特徴 ・マルチCPU/ネットワーク分散に対応した高速な局面評価エンジンを装備しています。 ・シングルCPU環境ではシングルスレッドに最適化された専用ルーチンがCPU資源を無駄なく活用します。 ・マルチCPU環境では評価演算は並列化され、複数スレッドの同時動作による高速化が行われます。 ・MRWorkerとの協調により、ネットワークコンピュータ上のCPU資源をシームレスに活用できます。 ・終盤解析ツールで一般的なExact/WLDに加えて通常の先読みによる評価が行えます。 ・通常の先読みでは枝狩り精度が設定可能なため、好みの評価精度/処理時間に調整できます。 ・評価対象には通常の最善手に加えて全着手を選択することもできます。 ・評価結果には評価値に加えて最善手進行の棋譜が出力されます。 =============================================================================================== 2.使用方法 =============================================================================================== ■既定構成の編集 ------------------------------------------------------------------------  メニューを実行すると既定構成が記述されたファイル("%APPDATA%\MRSOLVER\MRSolver.conf")がメモ帳  で開きます。「3.構成パラメータ」を参照して必要に応じて内容を変更して下さい。  変更は上書き保存によって適用されます。上書き保存の完了後、メモ帳は終了させてください。  初期状態では使用環境の論理CPU数と同じスレッド数で動作させる構成が記述されています。   ■スリトプトファイルの編集 -------------------------------------------------------------------  メニューを実行すると既定スクリプトファイル("%APPDATA%\MRSOLVER\MRSolver.mrs")がメモ帳で開きま  す。「4.スクリプトファイル」を参照して解析対象の盤面データを記述して下さい。  変更は上書き保存によって適用されます。上書き保存の完了後、メモ帳は終了させてください。  初期状態では全FFOテストの最初の2件を解析対象とするスクリプトが記述されています。   ■バッチファイルの編集 ---------------------------------------------------------------------  既定のバッチファイル("%APPDATA%MRSOLVER\MRSolver.bat")がメモ帳で開きます。「5.コマンドパラメ  ータ」を参照してバッチ形式で実行する処理を記述して下さい。  変更は上書き保存によって適用されます。上書き保存の完了後、メモ帳は終了させてください。  初期状態では既定ファイルを使用して全モードで評価を行わせるバッチ処理が記述されています。   ■バッチファイルの実行 ---------------------------------------------------------------------  既定のバッチファイル("%APPDATA%MRSOLVER\MRSolver.bat")を実行します。 ■MRSolverコンソール ------------------------------------------------------------------  コマンドプロンプトを開き、既定の環境設定("%APPDATA%MRSOLVER\SetEnv.bat")を行った後、MRSolver  のUsage画面を表示します。「5.コマンドパラメータ」を参照してコマンドプロンプト上で各種解析を  行って下さい。 ■評価データの変更 -----------------------------------------------------------------------  MRSolverが使用する評価データはMasterReversiと同一形式のため初期状態ではMasterReversi用の評価  データが共用されています。MRSolver専用の評価データを使用したい場合には"%APPATA%\MRSOLVER"フォ  ルダにEvalData.mreを作成して下さい。 =============================================================================================== 3.構成パラメータ =============================================================================================== ■Priority ----------------------------------------------------------------------------------- ・並列演算処理スレッドの優先順位を指定します。(低0 〜 高5) ・優先順位を高くすることで他プロセスの動作時にも処理性能の低下を抑えることができます。 ・優先順位を低くすることで処理実行中にも他作業をストレスなく行うことができます。 ・初期状態では3(通常優先度)が指定されています。 ■ThreadNum ---------------------------------------------------------------------------------- ・並列演算処理を行うローカルマシンのスレッド数を指定します。(0 〜 32) ・通常は論理CPU数と同一値を指定することで最大性能に設定できます。 ・環境によっては論理CPU数よりも少し少ない数を指定した方が高性能になる場合があります。 ・指定値0はMRWorkerとの連携時用に用意されています。非連携時に指定すると解析は終了しません。 ・初期状態では最初に起動された時点で検出された論理CPU数が指定されています。 ■HyperThread -------------------------------------------------------------------------------- ・並列演算処理をHTTに最適化するかしないかを指定します。(0:しない / 1:する) ・1を指定した場合にはHTTに適さない一部の処理で使用する論理CPU数が半減されます。 ・本指定はThreadNumが2以上の場合にのみ有効です。 ・初期状態では0が指定されています。 ・本指定を行う事で、HTTが動作するCPU環境での処理性能を高速化できる場合があります。 ・CPUのAffinity設定を行う場合には本指定は0にしてAffinity設定でCPUの使用形態を指定して下さい。 ■CacheSize ---------------------------------------------------------------------------------- ・キャッシュで使用するメモリサイズをMB単位で指定します。(32Bit版:0〜512 / 64Bit版:0〜4096) ・サイズを大きくすると一般に性能は向上しますが搭載メモリ量が少ないマシンでは劣化が発生します。 ・初期状態では128が指定されています。 ■CacheClear --------------------------------------------------------------------------------- ・局面評価開始時にキャッシュをクリアするかしないかを指定します。(0:しない / 1:する) ・キャッシュをクリアすることで直前の評価に影響されない評価を行わせることができます。 ・初期状態では1が指定されています。 ■CacheSave ---------------------------------------------------------------------------------- ・キャッシュをファイル保存して次回起動時に使用するかしないかを指定します。(0:しない / 1:する) ・キャッシュ保存を利用すると関連性の高い処理を何度も実行する場合に処理の高速化が期待できます。 ・初期状態では0が指定されています。 ■CachePath ---------------------------------------------------------------------------------- ・キャッシュをファイル保存する場合に使用するファイルパスを指定します。 ・キャッシュファイルにはCacheSizeで指定されたサイズとほぼ同等の容量が必要になります。 ・初期状態では"%APPDATA%MRSOLVER\CacheData.mrc"が指定されています。 ■ProbeCutAccuracy --------------------------------------------------------------------------- ・先読み実行時の枝狩り精度を指定します。(低0 → 高100 / -1:デフォルト) ・精度を低くすることで結果を高速に得られるようになりますが値の信頼性は低下します。 ・精度を高くすることで結果を得るの必要な時間は増加しますが値の信頼性が向上します。 ・-1を指定した場合には評価データの製作者が設定したデフォルトの精度が使用されます。 ・初期状態では90が指定されています。 ■TraceLevel --------------------------------------------------------------------------------- ・トレースを出力する場合のレベルを指定します。(0:イベントレベル / 1:機能レベル) ・初期状態では0が指定されています。 ■OutputBoard -------------------------------------------------------------------------------- ・対象局面を出力するかどうかを指定します。(0 / 1 / 2 / 3) ・0を指定した場合には出力されません。 ・1を指定した場合には画面表示にのみ出力されます。 ・2を指定した場合には出力ファイルにのみ出力されます。 ・3を指定した場合には画面表示と出力ファイルの両方に出力されます。 ・初期状態では3が指定されています。 ■OutputPerformance -------------------------------------------------------------------------- ・性能データを出力するかどうかを指定します。(0 / 1 / 2 / 3) ・0を指定した場合には出力されません。 ・1を指定した場合には画面表示にのみ出力されます。 ・2を指定した場合には出力ファイルにのみ出力されます。 ・3を指定した場合には画面表示と出力ファイルの両方に出力されます。 ・初期状態では3が指定されています。 ■OutputTrace -------------------------------------------------------------------------------- ・トレース内容を出力するかどうかを指定します。(0 / 1 / 2 / 3) ・0を指定した場合には出力されません。 ・1を指定した場合には画面表示にのみ出力されます。 ・2を指定した場合には出力ファイルにのみ出力されます。 ・3を指定した場合には画面表示と出力ファイルの両方に出力されます。 ・初期状態では0が指定されています。 ■Network_MyName ----------------------------------------------------------------------------- ・ネットワーク利用時に使用する名称を指定します。(最大半角31文字) ・この名称はMRWorkerで参照できます。 ・初期状態では「MRSolver」が指定されています。 ■Network_MyProfile -------------------------------------------------------------------------- ・ネットワーク利用時に使用する説明を指定します。(最大半角63文字) ・この説明はMRWorkerで参照できます。 ・初期状態では「Endgame Solver for Reversi」が指定されています。 ■Network_MyPort ----------------------------------------------------------------------------- ・ネットワーク利用時に受信ポートとして使用するUDPポート番号を指定します。(0 〜 65535) ・使用ポートが他アプリと競合する場合にはそれらと異なる値を指定して下さい。 ・0を指定した場合には、未使用のポート番号を自動的に検出して使用します。 ・初期状態では54320が指定されています。 ■Network_ConnectAddress --------------------------------------------------------------------- ・ネットワーク利用時に接続するMRWorkerのIPアドレスとポート番号を指定します。 ・本設定は複数指定が可能です。複数指定する場合には独立行に各指定を記述します。(最大128) ・IPアドレスの指定にはブロードキャストアドレス(255.255.255.255)が使用できます。 ・初期状態ではブロードキャストアドレスとMRWorkerの規定ポート(54322)が指定されています。 ■Network_ConnectWaitSec --------------------------------------------------------------------- ・ネットワーク利用時にMRWorkerからの接続応答を待つ時間(秒)を指定します。(0 〜 60) ・適切な待ち時間はネットワーク環境によって異なります。待機処理は起動時に一回だけ行われます。 ・待機処理後に応答したMRWorkerがあった場合には、その時点から並列演算処理に組み込まれます。 ・初期状態では2が指定されています。 ■Network_AliveCheckSec ---------------------------------------------------------------------- ・ネットワーク利用時にMRWorkerに対する動作チェックを行う間隔(秒)を指定します。(0 〜 3600) ・異常が検出された場合には当該MRWorkerとの接続は切断され、演算は別Workerに引き継がれます。 ・0を指定した場合には動作チェックは行われません。 ・初期状態では10が指定されています。 ■Network_SendTimeOutSec --------------------------------------------------------------------- ・ネットワーク利用時に送信パケットに対する応答を待つ最大時間(秒)を指定します。(0 〜 60) ・指定時間内に応答が得られない場合には送信処理のリトライが行われます。 ・小さな値を指定すると問題発生時のリカバリが敏速になりますが、誤認識の危険性が増加します。 ・0を指定した場合には無限に応答を待ち続けます。 ・初期状態では5が指定されています。 ■Network_SendRetryNum ----------------------------------------------------------------------- ・ネットワーク利用時に送信エラーに対するリトライ処理の最大回数を指定します。(0 〜 10) ・指定回数内に送信が行えなかったMRWorkerとの接続は切断され、演算は別Workerに引き継がれます。 ・小さな値を指定すると問題発生時のリカバリが敏速になりますが、誤認識の危険性が増加します。 ・0を指定した場合にはリトライは行われません。 ・初期状態では1が指定されています。 ■NetWork_WorkerUpdate ----------------------------------------------------------------------- ・ネットワーク利用時に評価データを転送するかしないかを指定します。(0:しない / 1:する) ・1を指定することで評価データのレビジョンアップをMRWorkerに同時適用できるようになります。 ・1を指定した場合にも転送不要/MRWorkerで転送が禁止されている場合には実際の転送は行われません。 ・初期状態では0が指定されています。 ■Affinity_Mode ------------------------------------------------------------------------------ ・評価演算スレッドとCPUのコアを関連付ける設定(Affinity設定)のモードを指定します。(0 〜 4) ・0を指定すると積極的なAffinity設定は行われず各スレッドはOSが選択するCPUコアで実行されます。 ・1を指定すると評価演算スレッドにはPコア(通常コア)が順番に割り当てられます。 ・2を指定すると評価演算スレッドにはEコア(高効率コア)が順番に割り当てられます。 ・3を指定すると評価演算スレッドにはP+EコアがPコアから順番に割り当てられます ・4を指定するとAffinity_Control〜Affinity_Worker28_31で設定値を数値指定するモードになります。 ・Eコア(高効率コア)がない環境で2を指定すると関連付けされるCPUコア数は0になります。 ・1〜3の指定時には評価演算スレッド数は関連付けされるCPUコア数とThreadNumの少ない方になります。 ・初期状態では0が指定されています。 ■Affinity_Physical -------------------------------------------------------------------------- ・HTTが有効なCPUで1コア/物理コアに制限するかしないかを指定します。(0:しない / 1:する) ・初期状態では0が指定されています。 ■Affinity_Control --------------------------------------------------------------------------- ・Affinity_Modeで4指定時にコントロールスレッドに割り当て可能なCPUコアをマスク値で指定します。 ・マスク値では使用可能とする論理コアを32Bitの16進数で指定します。 ・00000001で論理コア0、80000000で論理コア31を指定できます。 ・例えば、論理コア0と31の両方を使用可能にする場合には双方のビットを1にします。(値:80000001) ・マスク値としてffffffffを指定した場合にはAffinity設定は行われず使用コアはOSが選択します。 ・初期状態ではffffffffが指定されています。 ■Affinity_Worker00_03..Affinity_Worker28_31 ------------------------------------------------ ・Affinity_Modeで4指定時にローカルワーカー0〜31に割り当て可能なCPUコアをマスク値で指定します。 ・マスク値では使用可能とする論理コアを32Bitの16進数で指定します。 ・00000001で論理コア0、80000000で論理コア31を指定できます。 ・例えば、論理コア0と31の両方を使用可能にする場合には双方のビットを1にします。(値:80000001) ・マスク値としてffffffffを指定した場合にはAffinity設定は行われず使用コアはOSが選択します。 ・初期状態ではffffffffが指定されています。 =============================================================================================== 4.スクリプトファイル =============================================================================================== ■フォーマット ------------------------------------------------------------------------------------- ・解析対象の盤面データを先頭行から順次記述します。 ・盤面データ以外にコメント行を挿入することができます。 ・盤面データ/コメント以外の行が検出された時点でスクリプト終了と見なされます。 ■盤面データ -------------------------------------------------------------------------------------- ・盤面 手番を一行に記述します。 ・先手/後手/空きそれぞれをX/O/-で記述します。X/O/-の代わりに*/o/.を使用することも可能です。 ・盤面の記述順はA1B1C1D1E1F1G1H1....A8B8C8D8E8F8G8H8です。 ・例) O--OOOOX-OOOOOOXOOXXOOOXOOXOOOXXOOOOOOXX---OOOOX----O--X-------- X ・盤面データはMasterReversiからクリップボード経由で取り込むこともできます。 (「ツール」-「入出力」-「盤面出力」-「TXTクリップボードへ」の「1ライン形式」) ・上記の様な盤面データの代わりに標準開始局面からの棋譜を使用する事もできます。 ・例) D3C5E6F5F6E3C3F3C4B4B5C2A3D6C6E7D2C1G5G4F4D7C7B6F8E8D8A6D1A4E2B3F7 ・棋譜データはMasterReversiからクリップボード経由で取り込むこともできます。 (「ツール」-「入出力」-「棋譜出力」-「TXTクリップボードへ」の「着手形式出力」) ■コメント(表示用) ---------------------------------------------------------------------------------- ・行の先頭文字が'%'の場合、コメント行(表示用)として扱われます。 ・本行の内容は出力に追加されます。 ■コメント(非表示用) --------------------------------------------------------------------------------- ・行の先頭文字が'/'の場合、コメント行(非表示用)として扱われます。 ・本行の内容は出力に追加されません。 =============================================================================================== 5.コマンドパラメータ =============================================================================================== ■モード (-m) -------------------------------------------------------------------------------- ・解析モードを指定します。(e / w / 1..60) ・「-m e」を指定すると対象局面に対して完全読みを実行します。 ・「-m w」を指定すると対象局面に対して勝敗読みを実行します。 ・「-m 数値」を指定すると対象局面に対して指定値の先読み(枝狩り付きの探索)を実行します。 ・本パラメータの指定が無い場合には完全読みが実行されます。 ■全着手フラグ (-a) -------------------------------------------------------------------------- ・対象局面の全着手を解析対象とすることを指定します。 ・本パラメータの指定が無い場合には最善手のみが解析対象となります。 ■ネットワークフラグ (-n) -------------------------------------------------------------------- ・MRWorkerをネットワーク接続によって使用することを指定します。 ・本パラメータの指定が無い場合にはネットワーク接続は使用されません。 ■コメント指定 (-c コメント) ----------------------------------------------------------------- ・出力に追加するコメントを指定します。 ・解析毎に異なるコメントを追加したい場合に本パラメータを使用して下さい。 ・本パラメータの指定が無い場合にはコメントは追加されません。 ■構成ファイル指定 (-g ファイル) ------------------------------------------------------------- ・構成設定が格納されたファイルを指定します。 ・本パラメータの指定が無い場合には規定構成が使用されます。 ■出力ファイル指定 (-o ファイル) ------------------------------------------------------------- ・解析結果を出力するファイルを指定します。 ・本パラメータの指定が無い場合にはファイル出力は行われません。 ■スクリプトファイル指定 (-f ファイル) ------------------------------------------------------- ・解析対象が記述されたスクリプトファイルを指定します。 ・解析処理時には本パラメータの指定は必須です。 ■インストール (/Install) -------------------------------------------------------------------------- ・"%APPDATA%\MRSOLVER"フォルダを構築します。 ・既にデータファイルが存在する場合には上書きは行われません。 ・本パラメータは他パラメータと混在できません。 ■アンインストール (/Uninstall) ---------------------------------------------------------------------- ・/Installによって作成されたファイルとキャッシュ保存データが削除されます。 ・"%APPDATA%\MRSOLVER"フォルダの全ファイルが削除された場合にはフォルダの削除も行われます。 ・本パラメータは他パラメータと混在できません。 ■情報表示 (/Info) ------------------------------------------------------------------------------- ・使用される評価データに関する情報を表示します。 ・本パラメータは他パラメータと混在できません。 ■CPUコア情報表示 (/CoreInfo) ---------------------------------------------------------------------- ・動作中PCのCPUコア情報を表示します。 ・Affinity設定を行う場合に参考にしてください。 ・本パラメータは他パラメータと混在できません。 ■Affinity設定表示 (/AffinityInfo) ------------------------------------------------------------------ ・現在のAffinity設定を表示します。 ・Affinity_Modeが4の場合には設定値、それ以外の場合には実際に使用されるAffinity設定が表示されます。 ・同時に、使用可能な最大ワーカー数がAffinity_WorkerLimitとして表示されます。 ・ThreadNumをAffinity_WorkerLimitよりも大きく設定すると内部的にはAffinity_WorkerLimitに書き換えられます。 ・本パラメータは他パラメータと混在できません。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ (c) 2007-2022 T.Ishii (t-ishii@js2.so-net.ne.jp) All Rights Reserved