かずきち。の日記

サーバサイドエンジニアのつぶやき

GoogleColabのランタイムを延命して90分ルールを回避する方法


GoogleColabの90ルールを回避する

GoogleColabratoryはGoogle上で実行できるPython環境です。
プログラミングを開始するので、最大の山場は何かというと「環境構築」です。

昨今はプログラミング環境をオンライン上で構築してくれるサービスがありまして、
10年前のようにapt-getやbrewコマンドを叩いてオンライン上からモジュールなどを自分で用意する必要がなくなりました。
パソコンを買えばプログラミングができるというのは間違いで、パソコンを買って、プログラミングができる環境を自分で作って、プログラムソースを書いて初めてプログラムは動きます。

一般に思われるのがパソコンを購入すればプログラミングはできるという考えです。
自動車を買えば、車の運転ができるのか?と言うとそれは間違いで…
自動車を買っても、免許の更新に行かなければ自動車には乗れませんし、ガソリンを補充しないと車は走りません。
免許が失効したり、ガソリンがなければ動かないのです。

プログラミング環境をオンラインで構築してくれるGoogleColabは便利

colab.research.google.com

便利っちゃ便利なのですが、90分間手を動かさないと忘れるという問題があります。

実行中プログラムやimportされたパッケージ、使用した変数
インストールしたパッケージ
! pip install などでインストールしたパッケージ
GoogleColabへアプロードしたファイル
GoogleColabがマウントしたGoogleドライブ

をがっつりGoogleは忘れるので、プログラマーは悩みます。
金曜日にプログラムが完成したとしたら、月曜日にはいろいろ忘れているので…
ゼロからプログラムを修正するという不毛な作業があります。
上司からもなんで金曜日にプログラム完成したのに、また月曜日にいじってるの?とか聞かれますが…
それにはGoogleColaboratoryの90分ルールが影響しているので、忘れてしまいます。
それは困るのでパソコンを閉じても裏でプログラムを実行状態にして、時間稼ぎをします。

時間を計測するプログラムを無駄に走らせて、時間稼ぎをする
import time
for i in range(0, 100000000000, 1):
    time.sleep(1)
    print(i, "秒経過")

Googleのこのルールを無効化するためにsleepを入れて制限を回避します。
これでパソコンを閉じてもプログラムは走り続けて、90分ルールを無効化することができました。