2010-04-20

_ CSA選手権リモート参加方法の検討

CSA選手権の大会ルールの10条には以下の規定があります。

(リモート参加) 第10条
1 次の各号に掲げるいずれかの場合には、指し手生成部を、選手権の会場外にある、対戦用サーバとのLAN接続が不可能なマシン(以下「リモートマシン」という)で実行することができる。
  これをリモート参加という。
 一 参加者が選手権の初日の前日までに事務局に申請し、主催者がやむを得ない事情があるとして認めた場合。
 二 主催者が前条第2項の規定により指示した場合。
2 リモート参加の場合、参加者は、リモートマシンとの指し手の送受信機能、および第5条に規定した機能を持つマシン(以下「会場用マシン」という)を、自らの責任で用意するものとする。
3 リモートマシンと会場用マシンとの間の指し手の送受信は、手動で行ってはならない。その送受信のための通信の接続・再接続は手動で行うことができる。
4 リモートマシンの思考記録(少なくともリモートマシン上での消費時間と生成された指し手)は、残しておかなければならない。

仮にGPS将棋がリモート参加をしたとすると、上のルールは下記の図で、Bはつなぎなおしても良いけどAの通信は切れてはだめと解釈できますね。

サーバ ←A→ 会場PC ←B→ 駒場

Bは実際に切れる可能性がAよりも高いでしょうから、会場PCをルータにしてサーバと駒場間のTCP接続を結ぶのは危険が高そうです。

現在の案は、通信内容をファイルシステム内(IN,OUT)に保存して中継する構成です。

サーバ ←X→ ファイルシステム@会場PC ←Y→ ファイルシステム@駒場 ←Z→ 思考部@駒場
  • プログラムX: サーバから受け取った通信をIN/ に保存する。OUT/ を監視して内容が増えたらサーバに送信
  • プログラムY: 会場PCと駒場のIN, OUT の中身の同期を取る (Bの接続が切れたらこのプログラムのみ手動で起動しなおす必要がある)
  • プログラムZ: INを監視して、思考部に渡す。思考部からの出力をOUTに保存。

幸いにCSAプロトコルは行単位なので、000.txt, 001.txt 等1行ごとに別ファイルにしてやりとりできそうです。大会が近いのにまだテストが済んでいないのはまずい状況ですが、頑張って間に合わせないといけないですね。

_ gps_4X8

floodgateで対局しているgps_4X8もGPS将棋開発チームが投入している実験版で、4coreの並列探索を8人合わせたものです。まだ一試合で10以上レーティングが変わるので安定していませんが、1core*32人よりも成績が良さそうですね。個々の性能が劣っても全体の性能が出るような方法を探したいところです。なんとなく切れ負けとは相性が悪いかもしれません。

今年は強さが向上する範囲で利用可能なハードウェアを集めてリモート参加をする計画を立てていますが、来年以降の選手権でリモート参加するかどうかはまだ未定です。

[]