Posted at

Colaboratory で利用できるマシンリソースや構成を調べる

Google Colaboratory は無料で利用可能な Jupyter Notebook 環境です。

この記事では、ノートブック上でどのくらいのマシンリソースが使えるのか、またマシンの構成がどのようになっているかを確認する方法を示します。具体的には、Python のモジュールを活用して確認したり、OS コマンドを実行することで確認できます。Jupyter Notebook 上で OS コマンドを実行するには先頭に「!」を付与します。これを活用します。

ノートブック環境は、VM 上にコンテナを起動して割り当てているように見えます。ですので、CPU、メモリに関しては、ホスト OS 側とコンテナ側のリソースを確認する方法を示します。


OS 情報

Linux ディストリビューションによって異なりますが、Ubuntu の場合は「/etc/os-release」ファイルを開くと確認できます。

!cat /etc/os-release


OS パッケージ一覧

Linux ディストリビューションによりますが、Ubuntu 系だと「dpkg -l」で確認できます。

!dpkg -l


Python バージョン

Python 標準モジュールの sys モジュールで調べることができます。

import sys

print(sys.version)


Python パッケージの一覧

「pip list」を実行するだけでいいのですが、データフレーム化することで見た目が綺麗になったり、条件に合致する行の抽出がやりやすくなります。

なお、パッケージを追加する方法は公式ドキュメントのライブラリのインポートと依存関係のインストールをご参照ください。

out = !pip list

import pandas as pd
df = pd.DataFrame(out.fields()[2:], columns=out.fields()[0])
df


CPU

ホスト OS に搭載されている CPU コア数、CPU の種類、周波数などを確認するときは「/proc/cpuinfo」を開きます。

!cat /proc/cpuinfo

コンテナへのコア割り当ては次のファイルで確認します。コア「0, 1」に割り当てられています。

# コマンド

!cat /sys/fs/cgroup/cpuset/cpuset.cpus
# 出力
0-1


メモリ

ホスト OS のメモリ搭載量は「/proc/meminfo」ファイルを開くことで確認できます。データフレーム化すると綺麗に見れます。

out = !cat /proc/meminfo

import pandas as pd
df = pd.DataFrame(out.fields()[:])
df

一方でコンテナのメモリ上限は次のファイルで確認できます。この出力は約 12.6 GB。

# コマンド

!cat /sys/fs/cgroup/memory/memory.limit_in_bytes
# 出力
12616466432


ディスク

ディスク搭載量は「df」コマンドで確認できます。データフレーム化すると綺麗に見れます。

out = !df -hP

out[0] = out[0].replace('Mounted on', 'Mounted')

import pandas as pd
df = pd.DataFrame(out.fields()[1:], columns=out.fields()[0])
df


GPU

[ランタイム] → [ランライムのタイプを変更] からハードウェアアクセラレータを選択できます。GPU をアタッチした状態で「nvidia-smi」コマンドを実行すると GPU の情報を出力できます。Tesla K80 が搭載されています!

!nvidia-smi 


最後に

無料でこれだけのリソースを利用できるのは、凄すぎると思いました。