LoginSignup
2
3

More than 5 years have passed since last update.

いつになっても研究室の計算機が使えないのでGCEを使う話 1

Last updated at Posted at 2019-03-12

研究室の計算機が使えない

大学の研究室というのはセキュリティなどの問題から、計算資源を得るためにはサーバ管理者から信頼を勝ち取らなければならない。
これはたとえ教員から計算資源を得る許可を得ていても同様で、(教員を経由したとしても)その管理者がだんまりを決め込んでしまうと自体はまるで進展しない。
この自体の原因は主に普段自分が研究室に居ないせいなのであるが、慢性的な席不足のため私は研究室から机が割り当てられなかった人間だという事実を少しは考慮して欲しいと思う。
そんなわけで計算資源を得ることができなくなっているのだが、研究をしなければいよいよもって大学に在籍している意味がなくなってしまう。よって仕方がないので多少身銭を切ってでも研究環境を整える必要があるのだ。

GCEで作りたい環境

環境を作るにあたって、まずどのような要件があるのかを確認しなければならない。
今回は機械学習(特にTensorflow ・PyTorchを用いた自然言語の深層学習)を行いたいと考えている。
さて、この内容で欲しい計算機の要件を考えてみる。

  1. GPU(本番的にはTeslaV100を望みたい)
  2. 20GB~のメモリ
  3. 10GB未満のデータ領域(モデル・データを多めに見積もったもの・OSやPython等はこれに含まれない)
  4. cuda+cudnn 環境

とりあえず以上が最低限必要なものとして挙げられそうだ。

GPUの割当を受け、GCEのインスタンスを建てる

まずGCP(Google Cloud Platform)のプロジェクトを作成し、GPUの割当を受けなければならない。プロジェクトの作成に関してはこのサイトに従えば可能だろう。

GCPコンソールから左上ハンバーガーメニューより、Compute EngineVM インスタンス と進む。すると初回アクセス時のみ Compute Engine の初期化が行われる。
初期化が終わったならば同様にハンバーガーメニューから、IAMと管理、そして割り当てを選択する。
サービスからCompute Engine APIを、指標から GPUs(all regions) を選択し、出てくるサービスであるCompute Engine API [GPUs (all regions)] にチェックを入れ、上部の割り当てを編集をクリックすると名前や電話番号などの入力欄が現れる。これを入力していくと、最後にリクエストの説明を書く部分になる。これはおそらく日本語でも大丈夫であると考えられるが、英語で書いて損はないだろう(ちなみにTwitter APIの申請は英語のみのようだ(2019年3月現在))。

参考までに私が送りつけたリクエストの説明は日本語訳すると以下のようであった。

私は会話システムなどのNLPについて実験したいです。
フレームワークとしてTensorflowとPyTorchを使います。
私の最初の実験は、日本語のTransformer(Attention-is-all-you-need)です。

さて、このリクエストは2営業日程度の時間で処理される(私の場合は約3時間で処理された)。それまでの間は自分の実験内容を再確認するなどすればよいだろう。

このリクエストが受理されたものとして話を進めていこう。

まずVMインスタンスへ移り、作成を押す。すると左側新規VMインスタンスが選択された状態の画面が見えるだろう。

ここから計算マシンを選択していく。うっかり間違えると凄まじい利用料金を請求されるためしっかりと注意を払わなければならない。上から順に眺めていこう。

  1. 名前
     インスタンスの名前である。自分が判別できるような名前を指定すれば良い。
  2. リージョン・ゾーン
     そのリソース(ほぼマシンと同義)が物理的に実行される地域のようだ。地域によって使うことができるGPUの種類が異なる ため、自分の使いたいGPUに合わせて選択をすればよいだろう。
  3. マシンタイプ  CPU、メモリやGPUを設定する重要な項目である。まずvCPU x 1から必要なサイズを 選び、カスタマイズでGPUを選択する。
  1. コンテナ
     今回は特に扱わない。
  2. ブートディスク
     ほとんど趣味の領域ではあるが、OS は Ubuntu 18.04 LTS、ディスクサイズは多めに見積もって30GB程度で十分だろう。
  3. IDとAPIへのアクセス
     任意で 各APIにアクセス権を設定 から ストレージ読み取り/書き込み にすると今後便利かもしれない。(GCSとの連携に用いるようだが、sftp などを用いてローカルマシンとのデータ転送を行う予定ならばこの手続きは不要だろう)
  4. ファイアウォール
     例えばJupyter notebookといったHTTP/HTTPS通信を行う必要がある場合にはこの設定を行えばよいだろう。(SSHポートフォワーディングなどを用いる予定ならばこの設定は不要だろう)
  5. 管理、セキュリティ…
     特にセキュリティ のSSH認証鍵が重要だ。ここにローカルマシンのSSH認証鍵を貼り付けることでこの計算マシンへアクセスすることができる。
     鍵を追加すると、左側にローカルマシンのユーザ名が表示されると思われるが、これが計算マシン上のユーザとして自動的に作成されるため、SSH接続する際には、ssh [user-name]@[machine-global-address] のようにアクセスすることとなる。

以上の設定が終わったのならば、右部の料金予測を見る。
image.png

 この合計とは一ヶ月マシンを 継続して 使い続けた場合の料金であるから、我々が寧ろ注目すべきは1時間における利用料金だろう。
$0.838 / hour であるから、およそ1時間 100円程度 だと考えれば良いはずだ。
 ところがこれは Tesla T4 を1台のみ用いた料金であり、これがTesla V100 を2台ほど用いると話は大きく異なる。破産しそうになったなら適当な箇所に訴えて研究室を変えて頂くか、大学を辞める方が良いだろう

最後まで確認し、内容に不服がなければページ下部の作成 を行う。

作成されると勝手に起動してしまうが料金がかかってしまうため、必ず停止 しておく。停止方法は、vmインスタンス のページから、起動しているインスタンスの右側ボタンからメニューを出し、停止 を押すだけだ。起動する場合には同様にして 開始 を押せば良い。
image.png

目次

いつになっても研究室の計算機が使えないのでGCEを使う話 1
いつになっても研究室の計算機が使えないのでGCEを使う話 2

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3