読者です 読者をやめる 読者になる 読者になる

たごもりすメモ

コードとかその他の話とか。

#isucon2をやりましたの話

isucon

livedoor Techブログ : #isucon2 リアルタイムフォトレポート 更新終了
livedoor Techブログ : #isucon2 参加者・関連エントリまとめ
tagomoris/isucon2 · GitHub

結論から申し上げますと、

またfujiwara組に優勝されてしまった!!!!!!!!!!*1

そんな中で山形組の活躍が目立ったイベントでもありました。特別賞ラインのスコアに最初に到達し、最終的にも2番手のスコアでした。fujiwara組とまったく異なる方法で高スコアを叩き出す姿勢はすごいものがありました。
そのほか、懇親会やblogエントリなどで参加者の皆さんが何をどう考えどのようにあの7時間を戦っていたかをいろいろ見せて/聞かせていただいて非常に嬉しい時間を過ごしています。中にはこちらが思いもよらなかったことを考えていたチームもあったようで、いろいろと面白いです。

いっぽうベンチマークツールの動作チェックはエラーの表示がわかりにくかったり一部想定したチェックが行われていなかったりしたようです。またサーバの設定ミスとも言えるところもあったようで、申し訳ない限りです。また採点フェイズでの走行設定ミスについてもお詫びするしかありません。

とはいえ、実のところ準備がギリギリになって充分なテストができないのが常である、参加者が割と何をやるか分からず想定外の(ただし行い自体は正当な)ことで全体が崩壊する恐れがある、などが当日はだいたい頭にあってgkbrしているので、そういう意味ではイベントが成立しなくなるようなミスは無く、無事に終わってほっとしました。

まず、謝辞あれこれ

イベントとしては今回も @941 にものすごいあれこれやってもらいました。というかイベント運営の部分は丸投げ状態です。データホテルの @ibucho をはじめとした方々やNHNJapanの人事系の方々にもあれこれ手伝ってもらいました。本当にありがとうございました。
また懇親会をはじめとした手配を @torii704 にお願いしました。主に自分があれこれわがままを言って困らせてました。すいませんすいません。ものすごくいい会場で存分に懇親できたのはすべて彼のおかげです。ありがとう!

また既にblogエントリが出ていますが、今回の作業対象アプリは主に @sugyan にやってもらいました。ISUCON出題のアプリは当日まで次々と仕様が変わり続けるのでいろいろ大変だっただろうと思います。またPHP版を @faultier Java版を @just_do_neet Python版を特に名を伏す同僚ひとりにお願いしました。結果的にどの言語の実装も本番で使われたようです*2。ありがとうございました。

コンテスト用サーバの準備は物理面ではデータホテルの方々、仮想面では @poohtarou にほとんどやってもらいました。おかげで最後にばたばたしてた時期をソフトウェア面に集中できました。ありがとうございました。

共犯者 @kazeburo はおつかれさまでした。体を大事にしてください……。おたがいさまですが。w

最後に、参加者のみなさま、ご参加ありがとうございました。こんな奇特なイベントが盛況になるのは苦しいのが分かりきってる7時間を覚悟してやってきていただいたみなさまのおかげです。楽しい時間になっていればよかったと思います。また今後何かに資することがあれば幸いです。

結果について

最終的な結果は以下の通りでした。これは当日の説明の通り、採点フェイズにおける1分走行/3分走行が混在したものです。

参考までに、今日になって一時的に環境を再度立ち上げ、全チームで3分のベンチマーク走行を行いました。その結果が以下のものです。

念のためFAILEDになったチームや山形組(本番時に較べてスコア低下が大きかったため)などは2回走行を行ったりもしました。それによりFAILEDから成功になったチームも2,3あります。*3

そのほか、チームごとにベンチマークを回した回数などもとってみました。ベンチマーク走行回数は合計で1703回、少ない順に並べるとこんな感じです。突出して多いチームもありつつ60〜80回のところが多いなか、上位チームのベンチマーク走行回数は決して多くはないのが興味深いところ。

+--------+-----+
| teamid | cnt |
+--------+-----+
|     xx |  15 |
|     xx |  35 |
|     xx |  40 |
|     xx |  47 |
|     xx |  54 | # 山形組
|     xx |  55 |
|     xx |  57 |
|     xx |  60 |
|     xx |  61 |
|     xx |  62 |
|     xx |  64 | # fujiwara組
|     xx |  64 |
|     xx |  72 |
|     xx |  72 |
|     xx |  77 |
|     xx |  77 |
|     xx |  77 |
|     xx |  79 |
|     xx |  80 |
|     xx |  80 |
|     xx |  84 |
|     xx |  86 |
|     xx |  88 |
|     xx |  89 |
|     xx | 133 |
+--------+-----+

ISUCON2は前回のISUCONと較べてベンチマークをかける側により複雑な処理と高い並列度が必要とされた問題だったためベンチマーク実行側のパフォーマンスが若干心配でしたが、かなりハイパフォーマンスなサーバをその役にあてたこともあり、無事さばききったようでした。安心しました。

以下あれこれ

以下のようなことについて書こうと思った、が、長い! 既にこのエントリだいぶ長い!

ので、別途書きます。また今回も「おひとりさま向けISUCON2のつくりかた」をたぶん書きます。それはあっちにかな。

*1:おめでとうございます!

*2:node/PHP/Python/Java が1チームずつ、Rubyが4,5チーム? あとはPerl

*3:山形組のスコアは2回目の走行でも特に変化はありませんでした