yuw27b’s blog

技術メモと雑記

GCEでGPUを使うとメンテナンスで止まることがある

Google Compute EngineではインスタンスGPUを追加することができます。

f:id:yuw27b:20191121215600p:plain


これを利用して、数日かかるDeep learningの計算をしていたのですが、途中で止まってしまうケースがありました。突然終了するらしく、プログラムから出力していたログ(テキストファイル)も壊れている状態でした。

GCEのログを確認したところ

terminateOnHostMainetenance
と出力されていました。ホストメンテナンス時に止まったようです。

GCEは、メンテナンス時には自動的に別のハードへ移行するので、それまで気にしたことがなかったのですが、改めてインスタンス作成画面を見てみると「GPU搭載のマシンはホストメンテナンス時に移行できません」と記載されていました。

f:id:yuw27b:20191121215702p:plain

ですので、ホストメンテナンス時には「VMインスタンスを終了」しか選べません。

それは仕方ないのですが、GCEはユーザーの操作以外で終了した場合には自動的に再起動します。
再起動時に自動的に計算を再開するようにしていない場合は、「何も計算していないのにインスタンスが起動していて課金される」状態になるので、再起動オプションを「オフ」にするのが良さそうです。

私が経験した限りでは、このようなホストメンテナンスでのインスタンス終了は、1インスタンスで月に1回あるかどうか、という印象なので、自動的に計算を再開するプログラムを用意するのは手間のわりにメリットがないと判断してやっていません。インスタンスが終了していたら手動で起動して続行させています。