• The University of Tokyo / RIKEN
  • tsuzukums.k.u-tokyo.ac.jp

5月TODO

5月のtodoは以下の通り。

  • 講義 3コマ/週
  • 講義資料作成
  • update arxiv ver. of CVPR
  • student seminar 発表(5/8)
  • NeurIPS 2019 研究室締切(5/9), abst(5/16), paper(5/23)
  • CVPR oral presentation video deadline(5/28)
  • 某社(1)と某社(2)との調整
  • AIP challenge? (optional)

そこまで忙しくはないけれど、油断してると痛い目を見そう。 ゴールデンウィークのほとんどをリラクゼーションに費やしているのもあって意外と時間がないかも。

今月からは20\%プロジェクトの試運転と称して月1くらいのペースで何かやりたい。 今は

の勉強をしていて、前者は趣味、後者はICFPCとかで役立たないかなという感じ。 前者は3/5くらいはtutorialが終わった。 聞いていたよりは楽に習得できそう。 Rustを使った方が良さそうでかつ作りたいものとしては

  • データベース
  • OS
  • C compiler
  • gitのcopy

あたりがあるけれど、言語を覚える+これらの作成を両方やるとTODOの方に確実に支障が出る。 Goはとりあえず今月はdocumentationを一通り読み終われば十分かな。

もうちょっと現実的に作れそうでかつリアルに必要なものだと、

  • Job tracking system (trackというか実行済みjobの管理)
  • Job management system (こっちは実行順序や実行状態の制御)

あたりなきがする。無理にRustを使うよりPythonとかでサクッと書くのがいいのかな。 前者は大学のスパコンで大量にjobを走らせた時に実行済みjobの管理が面倒なのでいい感じに管理したい。 後者は$N$ nodesを確保してそこにある系$N\times M$のgpuを使っていい感じにjobの実行と回収をしてほしい。 スパコンのdefaultのjob management systemだと

  • nodeごとにしかresourceを確保できない(1 gpu jobとかでは無駄)
  • jobの投入数に制限がある

みたいなのが問題でしんどい。加えて

  • hyparparameterのgrid searchみたいなのは1つのjobとしてまとめてほしい
  • 依存関係のあるjobの集合を順番に実行してほしい

みたいな需要もある。 後者のmulti-node対応までやるとちょっとオーバーワークな気がするので、 前者+後者のsingle node版をちゃんと整備するのを今月の20\% projectにすると良さそう。 (あとRustとGoを一通り見ること。)

filesystemを操作することになると思うので、 どうやってうまくテストを書くかみたいなのは多少考える必要がありそう。 テストカバレッジが低いPython製オレオレライブラリとか絶対に使いたくない。

下は全然関係ない最近利用したお風呂。 LEDが光ったりジャグジーになったりとハイテクだった。 インスタ映えっぽい。