seri::diary::graduate_school

大学院修士課程での研究生活について書いています

なぜ筑波大学か

2017年2月9日

なぜ数ある大学院の中で筑波大学を受けようかと思ったのか、いまのうちにメモしておく。

ちなみにこれは2016年9月に立てた、自分の身の回りのタスクを管理してるprivate repositoryのissue。

f:id:serihiro:20180103173159p:plain

大学院を選ぶとき、修士課程であってもまずは研究内容と研究室を決めるところから入るのが普通らしいのだが、この時点では全くのノープランであったことがうかがえる。

  • もともと大学院でCSの修士を取ることには興味があった。それこそ5年ぐらい前から。
  • 外資企業のエンジニア求人の必須項目にはCSの学士号/修士号が必須だったりするし、アメリカで働くにしてもCSの学位がないとビザ取得が厳しいケースが多いと聞いていた。
  • 農学部出身の自分はそういう面でいつか職場選びで不利になるであろうと思っていた。
  • 一方で、2016年冒頭ぐらいの時にRui Ueyama氏のブログを読むようになって「システムプログラミング」というジャンルがあることを知った
  • 早速システムプログラミングというワードでググったら筑波大学情報科学類のシステムプログラミングの講義資料のリンクがトップに出てきた。こりゃいいやと思い、この講義資料を読みながらCで全て写経して、簡単なシステムコールについて学んで、echoサーバや簡易的なWebサーバを書いたりした。
  • 写経するついでに筑波大学のことについて調べたら、院には「CS専攻」という名前を冠する専攻がある。国内の大学でCSの名が付く専攻を持つ大学院はいくつかあるが、webサイトを読んで見た限り、専攻の幅は広く、教授の人数もめっちゃ多い。
  • 日本の大学院でCSの勉強するなら東大か京大かNAISTしかないかなぁと勝手に思ってたけど、案外筑波大学院もいいのかなぁと思い始めた。
  • で、色々調べてHPCS研究室が今の自分が持ってるスキルから一番遠く、今一番自分に足りないと思っていた分野であるビッグデータ処理に関する技術を取り扱っていることを知った。
  • せっかく2年間ガッツリ勉強するのだから自分が持っていない分野の勉強がしたかったし、何よりMapReduceは使いこなせる様になる必要があると前々から思っていたし、自分の課題も大規模データを効率よく処理するコードを設計して実装できないことだと思っていた。例えば「この部分だけCUDA使ってGPUに処理させたら早くなる」「ほげほげのアルゴリズム使えばパフォーマンス出る」「これはどうみてもMapReduce案件」みたいな勘所が全然分からなくて、業務でも自分の能力の限界を感じることが増えてきていた。
  • また、HPCの分野でよく使われるGPUXeonなどのmany coreなCPUがAWS EC2などのIaaSで使えるようになってきたり、InfiniBandがAzureで使えるようになってきたことから、インフラ技術は確実にHPC業界から広まってる。そういう新しい技術を今時間を取ってガッツリ勉強するのは投資価値が高いのではないかと思った。