司令ッ!! 零号機、始動しませんッ!!??(叫)
かぜをひいてダウンしてます。症状からいって例のあの流行ではないみたいですが。実はインフルエンザって今までなった記憶がないんですよね。健康だからか、体質なのか、バカだからなのか…
世間はGPWの季節ですか。私は不参加ですが、みなさんのレポート楽しみにしてます。
さて、6月のVDECフォーラムの後からずっとクラスタ並列を進めてきました。まず仕様を作り、コーディングを始めて…しばらく進めたところで仕様の抜けに気づいてまた仕様に戻って、とかやってましてかなり紆余曲折で苦しんでました。ようやくひととおりのコーディングができたのが10月中旬。といってもできたのは全体の8、9割といったところで、まあなくても動く部分はとりあえずとばして、通して動くのに必要な部分だけはできた、というとこです。
でそれからデバッグ開始。並列探索のテストにいちいちFPGAボードをつなげて立ち上げてると大変なので、ソフトのエミュレータを作ってPC上のソフトだけでテストできるようにしてます。
ここまでは、コンパイルだけは通してましたが、テスト(走らせること)は全くやってません。なのでこの時点では当然バグだらけ。マスターとスレーブがあって、MPIで通信するのですが、最初はまずマスターからリクエストが出る…はずなのが出ない。いくつかバグを見つけて直して、やっとマスターからリクエストが出るようにしました。するとスレーブが受け取ってくれない。でまた直して、受け取りはするようになったけど、今度はスレーブでの探索が始まらない。…といった感じで、ほんとに一歩一歩進めていきます。
とにかく、マスターから最初のリクエストを送る -> スレーブがそれを受け取る -> スレーブで探索を開始する -> 終わるとスレーブが結果を送る -> マスターが結果を受けとる -> マスターが結果を解析・反映する -> マスターが次のリクエストを出す、ところまで到達するのがもう大変。ひとつバグを直して「これで動いてくれるか!?」と毎回淡い期待をするんですが、さっき直したとこのすぐ次でfailしたりして、全然進んでる気がせず、まったく泣きたくなります。
とはいえ今までの経験から「最初の1ラウンドが動くようになれば後は比較的スムーズに進む」ものだとは大体わかっていたので、とにかくここはひたすら耐えてデバッグあるのみ。3週間くらいで何とかその「1ラウンド」が通りました。これで気分的にはかなり楽に。その後もデバッグを続け、つい先日ようやく一局通して対局できるようになりました。やれやれ。
といってもまだまだいろいろ制限付きで動いてるので、先はかなり長いです。ちょっと複雑なことやるとすぐコケるので、ただいまデバッグ中。また並列にする以上、「正しく動く」だけでは意味がなくて、性能を上げてかないといけない。並列の性能チューンというのがまたもう、ハマるのが目に見えてるところへわざわざ地雷踏みにつっこんでいくようなもんなんですが。なぜ地雷を踏むのか?そこに地雷があるからだ!てなもんです。でもまあ私としては、これをやらないと何しろ未来がありませんのでね。ぼちぼちやってくつもりです。
« 寄せては返す試練の荒波 | トップページ | ラブプラスプラス »
「将棋プロセサ」カテゴリの記事
- ボンクラーズの開発過程について書いた記事が掲載されました(2019.03.07)
- 「浅い評価値を深い評価値に近づける学習法」誕生の背景(2016.10.06)
- 塚田九段の対ボンクラーズ練習棋譜を公開します(2013.09.07)
- Puella α ソース公開(2013.08.28)
- クラスタ並列の解説記事を公開します(2013.08.22)
合議であればできると思うんですが
通常の探索の並列化はどうなんでしょうか?
どのくらいの粒度で並列化できるものなのか?
投稿: mkomiya | 2009年11月14日 (土) 15時31分
私もさっぱりわからないんですよ^^; これから動かしてみて実験していきます。おいおいレポートしていきますんで。
投稿: A級 | 2009年11月14日 (土) 19時20分