
bonasse（高速化版ボナンザ）v1.0 リリースノート
　　　　　　　　　　　　　　　　　　5/11/2010 伊藤英紀

・本パッケージについて
ボナンザを高速化したものです。クラスタ並列（ボンクラーズ）とは別物。
Linux向け：Windowsではたぶん動かない。floodgateのような対局サーバとの
通信がメイン用途で、GUIもない。
ボナンザv4.1.3(一部4.1.2)をベースにしている。

以下の説明は、ボナンザについてある程度知識があることを前提としています。
本家ボナンザの使用法等を知らない方はまず本家ボナンザについて知識を習得
してから以下をお読みください。

・著作権、disclaimer等
元のボナンザの部分は保木さんに、私が変更した部分は私に著作権があります。
使用制限・配布条件等は元のボナンザに準じます。bonanza.txtを参照ください。
無保証です。これを使って何が起きても私は（当然保木さんも）関知しません。


・使用法
本家ボナンザとほぼ同じ。ソースを展開したディレクトリで、make icc(gcc)し、
本家のwinbin/*.binをコピー(or リンク)して、mkdir logする。
あとは ./bonanza [< cmdfile] でよし。cmdfileは次のような感じで：

beep off
limit time 15 0
tlp num 4
sendpv on
resign 32599
connect wdoor.c.u-tokyo.ac.jp 4081 myprogname  floodgate-900-0,mytrip

コマンドの文法も本家ボナンザとほぼ同じだが、一点だけ拡張："sendpv on(off)"
とすると、サーバに読み筋と評価値を送る。デフォルトはオフ。
SSE4を使いたい人、SSE2もない人はMakefileの頭をいじってください。

OSはLinux一般を想定しているが、ディストリビューションやバージョンによっては
問題あるかも。コンパイラはiccかgcc想定だが、これもバージョンによっては問題
あるかも。私はUbuntu 9.10 64bitでicc 11.1を主に使ってます。

・本家からの変更項目
本家に追加したファイルはbonasse.hとdiffeval.cの２つ。
具体的な詳細は本家とのdiffをとればわかるが、項目としては以下。
 - hashバグ修正（私のブログの2/13/2010の記事参照）  hash.c
　　※&&を||に変えたらなぜか自己対戦で弱くなったので、HAND_Bを見ないようにした
 - 読み筋パッチ（私のブログの3/7/2010の記事参照） utility.c proce.c data.c ini.c shogi.h
                                                sckt.c (buffer size増)
　　評価値、読み筋をサーバに送る。コマンドで"sendpv on"とする
 - evaluate差分化  evaluate.c diffeval.c makemove.c search.c thread.c
 - bitboard SSE化  bonasse.h makemove.c unmake.c attack.c shogi.h
 - swap高速化（小ネタ）  swap.c
 - [e]hash atomicity（私のブログの4/16/2010の記事参照）
　　　　　   hash.c evaluate.c diffeval.c
 - CPU affinity   thread.c
   各スレッドが特定コア上で走るよう強制する。※現在デフォルトで入ってるが、オプション化すべき?
 - 稲庭対策^^;;; evaluate.c diffeval.c sckt.c  ad hocなので、参考にしないように。

・未解決の問題点
私が自宅からfloodgateをやっているとときどきtime upになったりabnormalになったりする。
原因調査しきれていないが、複数筋の情報から推測するとおそらくネットワーク環境の問題では
ないかと思われる。ADSLだとノイズ受けやすい、無線LAN機器を同時に使うと危ない、等々。
プログラムのバグではなさそうと今のところ思っているが、100%確信あるわけではないので、
もしプログラムのバグと信じるに足る（状況）証拠が見つかったらお知らせください。

・質問・バグ等の連絡先
私のブログ http://aleag.cocolog-nifty.com にコメント残してください。私は返信の義務を
負いませんが、事情の許すかぎり回答／対応したいと思っております。

以上

