Skip to main content

Container manager

Project description

Container Manager

DNNツール等を用いた実験の環境構築〜モデル学習をサポートするツールです.

Requirement

  • nvidia-driver
  • docker
  • docker-py
  • nvidia-docker

Install

以下のコマンドでcoctlコマンドがインストールされます.

pip install container_manager

GetStart

exampleディレクトリに最も簡単なサンプルがあります. exampleディレクトリのある場所でcoctlコマンドを使うことでタスクを実行することができます.

run

runコマンドでディレクトリを指定しタスクを作成,実行することができます.

$ coctl run example

上記のコマンドでpytorch1.4がインストールされた環境でタスク名/main.pyが実行されます(例ではexample/main.py). 指定したディレクトリ名のタスクが作成されます. coctlコマンドは実行したいタスクのディレクトリのある場所で実行してください. $ coctl run xxx/example$ coctl run ../exampleのような指定はできないことに注意してください. 個別に必要なライブラリ等がある場合はexample/Dockerfileに記載されているように適宜必要なライブラリを追加してください. main.pyが実行される環境は起動時に毎回新規に環境が作られるため,必ずDockerfilepip installなどを記載し,指定するディレクトリの中に配置してください. runの実行後はmain.pyのログが表示されます.Ctr-C などでログの表示を止めることができますが,タスクのプロセス自体は終了しません. 現在走っているタスクを止めるには下記のrmコマンドでタスクを削除するか,同名のタスクをrunすることで削除した後新しいタスクが作成されます.

実行時引数

実行したいタスクのmain.pyが実行時引数を必要とする場合には-oオプションで引数を渡すことができます.

$ coctl run example -o args1:hoge args2:baa arg3

とした場合

$ main.py --args1=hoge --args2=baa --arg3

のように解釈されます.

タスクの入出力

学習データなどの入力データはtraining_input/タスク名以下に配置してください. 出力データはtraining_output/タスク名に出力されます. タスクの実行される環境ではtraining_input/タスク名/inputに,training_output/タスク名/outputとして認識されるのでタスクのmain.pyでは/input以下からデータを読み込み,/outputへデータを書き込みようにしてください.

list

listコマンドで実行中及び完了済みのタスクが表示できます.

$ coctl list
task_name       | status
 example        | running
 test   | exited

上記の例ではタスク名testが完了済み,exampleが実行中であることを示します.

logs

実行中のタスクのログを確認するにはlistコマンドを利用します.

$ coctl logs example
arg3=default arg
main is run!!!
count 0
count 1
count 2
count 3

-fオプションをつけるとログをストリームで監視します.

rm

rmコマンドでタスクの削除を行うことができます.

$ coctl rm example
Task example is deleted

clean

タスクの生成を繰り返すと不要なデータが蓄積することがあります. ディスク容量が圧迫される場合はcleanコマンドで不要なデータを削除してください.

$ coctl clean

GCPで学習を行う場合の例

以下のコマンドでGPUを持つインスタンスを確保します.

gcloud beta compute \
	--accelerator=type=nvidia-tesla-v100,count=1 \
	--image-project=ml-images \
	--boot-disk-size=50GB \
	--zone=us-central1-a \
	--machine-type=n1-standard-1 \
	--subnet=default \
	--network-tier=PREMIUM \
	--maintenance-policy=TERMINATE \
	--service-account=770963190637-compute@developer.gserviceaccount.com \
	--scopes=https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/devstorage.read_write \
	--image=c3-deeplearning-tf-ent-2-1-cu100-20200131 \
	--boot-disk-type=pd-standard \
	--boot-disk-device-name=gpu-test \
	--reservation-affinity=any

gpt-testがインスタンス名なので適宜修正してください. acceleratornvidia-tesla-k80にしたり,countを増やしたりすることができます. また,boot-disk-sizeを変えることでディスク容量が変えられます. インスタンスの作成が完了し,サーバが起動すると以下のコマンドでログインできます.

gcloud compute ssh インスタcoンス名

*ログイン時にnvidiaドライバのインストールを行うか聞かれるのでyを選択してください. ContainerManagerの手順に従い,coctlをインストールします. 上記の手順で作成したインスタンスはContainerManagerのrequirementを満たしているのでそのままpip installが可能です.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

container_manager-0.1.0.tar.gz (5.6 kB view hashes)

Uploaded Source

Built Distribution

container_manager-0.1.0-py3-none-any.whl (5.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page