(準備中)
USIプロトコルに対応したプログラムを少し改変したクライアントをsshで複数起動して、手分けして探索を行うための枠組み。
参考:
sudo apt-get install g++ libboost-xxx.dev (xxxは可能なパッケージで一番新しいもの) libcppunit-dev
(cd osl; ln -s ../gpsshogi/data)
n=コアの数 (cd osl/lib/third_party/tcmalloc-0.93; make -j $n) (cd osl/release; make -j $n) (cd gpsshogi/bin; make -j $n gpsusi RELEASE=t)
./gpsshogi/bin/gpsusi --benchmark
usi isready position startpos go infinite stop quit等
configの1行目をgpsusiにしたまま2行目以降を自作プログラムを指定すると、基本的に自作プログラムでの探索となる。ステップ1で動かした時のio-1.txtと同じ文法で応答できればOK.
対応が必要な入力:
期待される出力:
info depth 6 score cp 903 nodes 59044 pv 4b4c
info time 827324090 nodes 411790 nps 406907
configの1行目を置き換えると、gpsusiを完全に排除した分散探索となる。1行目の担当は、定跡、合法手生成、勝ち宣言など。ステップ1で動かした時のio-0.txtと同じ文法で応答できればOK.
> genmove_probability < genmove_probability 3b4b 100 4c4d 186 3b2b 186等、指し手と数値(小さいほど良い手)を空白で区切って一行で返す。 合法手がない場合や1手のみの局面は特別な処理がなされるので、打ち不詰めや王手千日手の反則負け等を考慮して合法手のみを出力する必要がある。数値は正の整数が望ましい。 具体的な使われ方は、splitすべき有力な指し手を1秒の探索で決める際に、現在利用可能なslaveの数nだけ並列に探索する際に
./usi.pl -f problems/001.usi
./csa2usi.pl --csa_host wdoor.c.u-tokyo.ac.jp --usi_engine "./usi.pl" --csa_id your_name --csa_pw yowai_gps-1500-0 --sec_limit=1500 --sec_limit_up=0
(後日記述追加予定)