Cloud9 VS Colaboratory 実行速度対決!!

以前の記事AWS Cloud9とは?で紹介したAWS Cloud9と同じくブラウザ上でプログラミングできるGoogleのColaboratoryとのPythonでの実行速度の比較をしました。
両方ともブラウザ上で動作するので、ネット回線の速度にも関係してきます。
Colaboratoryは初回の実行時、実行ボタンをクリックしてから処理が終わるまで少し時間がかかるで、iPhoneのストップウォッチで測定しました。(そこは手動なので大目にみてください)
比較のためローカルでの実行結果も掲載します。

 実行するコード

実行するコードはなんの意味も無いコードです。

import time

#合計を出すためのリストを宣言
goukei = []

#経過時間を10回計測して、goukeiに代入
for i in range(0,10):

    #処理前の時間を取得
    t1 = time.time()

    #計測したい処理
    for i in range(100000000):
        num = 1

    #処理後の時間を代入
    t2 = time.time()

    #経過時間を表示
    elapsed_time = t2-t1
    print(f"経過時間:{elapsed_time}")

    goukei.append(elapsed_time)

#合計時間をだす
goukei2 = sum(goukei)
print("合計時間:"+str(goukei2))
#経過時間の平均をだす
heikin = sum(goukei)/len(goukei)
print("平均時間:"+str(heikin))

1億回 numに1を代入を10回行い、平均値を出力するという処理です。
num に1億回1を代入するところのみ速度を測定しています。

ローカルでの実行

環境はこちらです。



$ python3 timeSokutei.py

で実行しました。

単位は(秒)です。

ローカル
経過時間:6.482249021530151
経過時間:6.5502769947052
経過時間:6.519495010375977
経過時間:6.67773699760437
経過時間:6.5521509647369385
経過時間:6.51288914680481
経過時間:6.5577428340911865
経過時間:6.5581629276275635
経過時間:6.511642932891846
経過時間:6.647625207901001
合計時間:65.56997203826904
平均時間:6.556997203826905

AWSCloud9

実際に実行していきます。
使っている感覚ではとくにレスポンスが遅いと感じたことはありませんが、どうでしょう。単位は(秒)です。

AWS Cloud9
経過時間:7.162149667739868
経過時間:7.123037338256836
経過時間:7.128278493881226
経過時間:7.124325513839722
経過時間:7.147518873214722
経過時間:7.1371684074401855
経過時間:7.158981084823608
経過時間:7.138129234313965
経過時間:7.122908115386963
経過時間:7.159793853759766
合計時間:71.40229058265686
平均時間:7.140229058265686

iPhoneでの測定72.73

合計時間とiPhoneでの測定値の差はおよそ1秒です。
プログラム内の測定外の処理と、私のボタンを押す誤差を考えれば、ほとんど合計時間とiPhoneでの測定値に差はなさそうです。

Colaboratory

実行ボタンを押してから実際に処理が始まるまで、少し待ちました。それを加味してどちらのほうが速いのでしょうか。こちらも単位は(秒)です。

Colaboratory
経過時間:4.901450157165527
経過時間:4.895129919052124
経過時間:4.913864374160767
経過時間:4.893200874328613
経過時間:4.917495250701904
経過時間:4.947901487350464
経過時間:4.927969694137573
経過時間:4.885125637054443
経過時間:4.91829514503479
経過時間:4.920127630233765
合計時間:49.12056016921997
平均時間:4.912056016921997

iPhoneでの測定時間:61.76

合計時間とiPhoneでの測定値の差はおよそ12秒です。
実行ボタンを押してからかなり待った印象です。
しかし、待つのは初回実行時のみで、その後はあまり誤差なく実行できます。

まとめ

まとめると

  • AWS Cloud9 : 71.40229058265686秒
  • Colaboratory : 49.12056016921997秒
  • ローカル : 65.56997203826904秒

このコードの場合、一番実行速度が速いのはColaboratoryでした。
実行ボタンを押してからの待ち時間を考慮しても、ローカルよりCorlaboratoryのほうが速いのは意外でした。
Colaboratoryは設定すれば高性能なGPUを無料でつかえるので、機械学習などでとても重い処理を実行する場合はColaboratoryを使用するのがいいかもしれません。
Cloud9は様々な言語に対応しているので、使い分けると便利に使えそうです。