ie_test
2018年7月22日日曜日
GCPをとりあえず使ってみた
# 0. 前準備 GCP のコンソールを使用したり gcloud コマンドを使うための準備が必要となる。 https://ietoa.blogspot.com/2018/07/gcp-google-cloud-platform.html にインストール方法などを書いた。 # 1. google cloud platform の「コンソール」という画面に移動 URL: https://console.cloud.google.com/home 「Compute Engine」->「VMインスタンス」と進む。 # 2. インスタンスを作る. 「インスタンスを作成」をクリック 以下の項目を設定 - 名前 : (なんでも良いがとりあえず watashi-gpu1 とする。) - ゾーン: us-central1-a - マシンタイプ: 「vCPU x 2」を選択して、「カスタマイズ」を選んで以下を設定. 「メモリを拡張する」にチェックを入れて、 - メモリ: 32 GB - CPUプラットフォーム: 自動 - GPU: - GPU の数 : 1 - GPU のタイプ : NVIDIA Tesla K80 - ブートディスク: 「変更」を選び、 - OSイメージ: Ubuntu 16.04 LTS - ブートディスクの種類: 標準の永続ディスク - サイズ : 40GB - ファイアウォール: 設定しない。 作るとすぐ起動した状態になる。使わない場合は「停止」すること。 # 3. 接続 「接続」の項目の右に下矢印があるのでそれをクリックし、 「gcloud コマンドを表示」をクリックすると以下のようなコマンド例が表示される。 ``` gcloud compute --project "プロジェクト名" ssh --zone "us-central1-a" "watashi-gpu1" ``` 上記を打ち込めば ssh として接続できる. 一回目は ssh の key の設定などをするが二回目はすんなり入れる。 ssh の鍵は ~/.ssh に ``` google_compute_engine google_compute_engine.pub google_compute_known_hosts ``` として登録される. # 4. ファイル転送 gcloud compute scp [LOCAL_FILE_PATH] [INSTANCE_NAME]:\~/ のフォーマットと書かれているが、 --project と --zone の指定が必要( gcloud コマンドで project, zone を設定すれば --project , --zone の記述はいらなくなるらしい。) ``` gcloud compute --project "プロジェクト名" scp --zone "us-central1-a" memo.txt watashi-gpu1:~/ ``` 上記のコマンドでローカルにある memo.txt ファイルをクラウド上の ~/ ディレクトリに転送することができる。 - 料金感覚 (GB 単位) 月間使用量 ネットワーク(下り)送信先: 世界 ネットワーク(下り)送信先: 中国 (香港を除く) ネットワーク(下り)送信先: オーストラリア ネットワーク(上り) (香港以外の中国とオーストラリアを除く) 0~1 TB $0.12 $0.23 $0.19 無料 1~10 TB $0.11 $0.22 $0.18 無料 10 TB~ $0.08 $0.20 $0.15 無料 アップは基本無料。 ダウンロードは 10 GB くらい落とすと 1.2ドルで 150 円くらいか. # 5. マシンの停止 ``` gcloud compute --project "プロジェクト名" ssh --zone "us-central1-a" "watashi-gpu1" ``` でマシンに入った状態で ``` sudo poweroff ``` と打ち込むと停止する。停止まで1,2分くらい時間がかかるので注意。 # 6. マシンの再起動 ``` gcloud compute --project "プロジェクト名" instances start --zone "us-central1-a" "watashi-gpu1" ``` 起動に 1,2 分かかる。 # 7. 自動実行停止 gcp にて計算が終わったら自動で停止させるには以下のようなスクリプトを用意する。 ``` run.sh python3 net_test.py >& log.txt sudo poweroff ``` このスクリプト run.sh に対して ``` $bash run.sh & ``` としてバックグラウンド実行すれば exit で ssh 接続を切っても走り続けて、計算が終われば自動で gcp のマシンを停止してくれるので経済的にも安心。 -
2018/4/12 修正
上記の方法だと回しているプログラムの種類によってはカーネルに殺されることもあるらしい。https://www.qoosky.io/techs/9dd96483ab (ssh を抜け出してもも大丈夫なことは何回か確認はしているが、念のため screen での動作を推奨したい。) なので以下のようなコマンドを打つ。 ``` screen -dm -S qoosky bash -c 'bash run.sh' ``` -S qoosky の部分はなんでも良い。 -c ' ' の ' ' の中に実行したいコマンド内容を書くこと。( -dm はデタッチメント(バックグラウンドジョブとして)で動かすということ。) ちゃんとスクリーンで動いているかは ``` screen -ls ``` とすることで確認可能。もしくは上記のスクリプトの場合は ``` cat log.txt ``` などとして出力がなされていることを確認すると良い。 screen で動いているプロセスを途中で止めたくなった場合には ``` screen -S qoosky -X quit ``` とすることで止めることができる。 -S qoosky の部分は動作させた時と同じものを指定する。 止まったかどうかは screen -ls で確認すると良い。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿