ISUCONで目指している動き方

草野翔氏(以下、草野):「ISUCONで強くなる」ということは何なんですかね。「スコアが出ているから強い」ということでもない気がするじゃないですか。究極を言うと、本選に行けるから強いのではなくて、『満足感がある試合をしたらよし』みたいなところが僕のチームはわりとあります。「自分のチームでどういう動き方を目指している」みたいなものはあったりしますか? 馬場さんとかけっこうありそう。

馬場俊彰氏(以下、馬場):僕たちは役割分担がはっきりしているので、それぞれで果たすべきことは決まっているんですよね。なので、それぞれが満足に動けたかはだいたい途中でわかります。

(一同笑)

わかるんですけど(笑)。やはり迷子になっていない、やるべきことがわかっている時間が長いほうが充実感があります。「何をやったらいいかわからない」とずっと頭を抱えているのではなくて、「課題はわかっているんだけど、どう解いたらいいかな」という時間が長いほうが充実感がある。

その中で(答えが)出てきて、それでブレイクスルーしたらもうやばいじゃないですか。そういうのは中毒性がありますよね。

「ベンチマーカーよりこういうシナリオが動いているんだな」が理解できると点があがる

草野:catatsuyさんはいつも、ISUCONが終わると僕とベンチマーカーについて語り合える程度にベンチマーカーの解像度が異常に高くて。だいたい(catatsuyさんは)試合終了直後の解像度が高いんですよね。あれは解きながら「こういう感じかな」と考えていますか?

金子達哉氏(以下、金子):いや……。単純に。

草野:ベンチマーカーはこういう動きをするみたいな。

金子:普通に見たらわかるんじゃないですか?

(一同笑)

馬場:達人だ(笑)。

藤原俊一郎氏(以下、藤原):達人(笑)。

草野:「拳を振るえばすべてがうまく行く」みたいな。いやー、参考にならないな。

藤原:何回か忘れたけどけっこう初期のほうで、ベンチマーカーの並列度の話をしていて。終わったあとに作問者に「ベンチマーカーの並列は200ですよね」と言ったらビンゴだったんですよ。

(一同笑)

金子:藤原さんが言い当てているのを見てビックリしました。

藤原:Nginxのログでリモートポートを見ると、Keep-Aliveしているのが毎回200個出るんですよ。

金子:それは確かISUCON5の本選ですよね。

藤原:そうだっけ?

金子:ベンチマーカーのコネクションを保持していることを藤原さんが気付いていて、僕は「マジか」と。

藤原:Keep-Aliveをしてずっと接続を切らないから、ログをちゃんと集計すると並列度がわかって。「この並列度だったら」みたいなことは見えるので。モニタリングもあって、「どうやってログを見てベンチマーカーの挙動を見るか」みたいなものはあると思います。

草野:確かに。ベンチマーカーの挙動を想像しても優勝することはないけど。ベンチマーカーより「こういうシナリオが動いているんだな」という理解の解像度が高まると、確かに点がゴリゴリ上がる感じはありますね。何をしなきゃいけないサービスなのかがわかってくると、やることがすごく増えてきます。

作問するとISUCONは強くなる?

草野:waitaさんはISUCON10で一緒に作問をしたじゃないですか。

中西:やりましたね。

草野:あの時に2問見た感じはどうでした? ベンチマーカーを作る側もなんとなく眺めたりとか、どう問題を作っているかを眺めた時が最初だと思うのですが、作問すると強くなりそうな感じはありますか?

中西:「強くなる」に2、3個ぐらいのパターンがあるのかなと思っていて。例えば最近だと、特にISUCONはシナリオというか、「どういう人がユーザーとしてベンチマーカーでやってきていて、こういった流れをユーザーは取るんですよね」みたいなことがレギュレーションで書いてあったりなかったりすると思います。

そういった一連の流れの中で、どこが詰まっているのかを探す力は、確実に勝つためにはどこかで必要になってくるのかなとは思っています。そうなるとベンチマーカー力、実装をしている人間が一体何人いるかわからないですけど、読む力はかなり必要になってくるんじゃないかなとは思いますね。

草野:最近は「ISUCON参考実装が大きくなりすぎなのでは」と言われたりしていますが、たぶんISUCON10の本選で僕らが作った問題がたぶん過去最高に巨大なので、あれはちょっと反省をしています。

中西:(笑)。

草野:あれ(ISUCON10終了後のチューニング)は結局あのあとkazeburoさんは何点まで行ったんですか? 確かあのあと1週間ぐらいやっていましたよね。1、2週間ぐらいやっていた?

長野:環境を使えたのが1週間ちょっとでしたよね? 土日も含めてゴリゴリいじっていたので、1週間ぐらいかな? ちょうど仕事が暇だったんでしょうね。

(一同笑)

草野:恐怖があったんですよね。ISUCONが終わったあとも、サイバーエージェントさんのご厚意で「本選環境を残しているので後夜祭をできますよ」といって提供していただたはいいものの、メチャクチャ疲れるやつだし、WebPushとかを試しにやってみてみんなが何か言うぐらいかなと思っていたら、kazeburoさんが毎日進捗を出していて。

(一同笑)

草野:「この人は本当に仕事をしているんだろうか」という恐怖を。これでkazeburoさんの勤め先に「お前たち何ということをしてくれたんだ」と言われたらどうしようという恐怖がありました。幸い、そういうことを言われることもなく、ギリギリなんとかなってよかったです。本当によかったです。

長野:自分のところだけじゃなくて1、2チームぐらいいましたよね。

草野:そう。2チームか3チームぐらいずっとやっていて。しかも本当にずっとやっていて、わりと恐怖を覚えたんですよね。

長野:100万点ぐらいだったかな。それを超えられるかどうかみたいなところでやっていましたね。

草野:(コメント欄を見て)ちょっと待って。「毎日ISUCONの個人練習をしています」という学生が出てきて、俺はもう恐怖に震えているんですけど。

(一同笑)

藤原:すごい。

草野:まじかよ。勘弁してくれよ。「カヤック様ISUCONの作業用ディレクトリ」というのが出てきて、本当に毎日コミットされている予感がして恐怖しかない。すごい、マジで毎日コミットしている。やばい。いやー、こういう時代ですよ。

学生が強くなる現状をどう考えているか

草野:catatsuyさんは「private-isuがこんなに流行ると思っていなかった」と言っていましたが、どうですか? 学生が死ぬほど戦っているのを見ていると、強くなる理由も当然だという話とかもけっこうあるけれど。僕は学生が強くなるのは、けっこう普通にビビっています。

金子:やはりそういう環境を提供したいと思って作った部分は大きいので、実際に僕が作った問題を使って勉強してくれるのはメチャクチャうれしいですよね。

草野:本選問題は意外と練習環境に使ってもらえないことが多くて。なぜかというと(問題が)複雑だからです。「予選に関わると学生の応援ができるんだな」と思って。予選のほうをやっておけばよかったなと、今ちょっと後悔しています。

馬場:じゃあISUCON13で(予選問題を担当する?)

草野:いや、ISUCON13は選手として出たいので。

(一同笑)

草野:選手として出るために僕は今メチャクチャがんばっているので。本当にもう「次こそは」という感じです。

(次回に続く)