Python – 長時間のML/DL Trainingに役立つTMUX
今回は、業務でcronほど定期実行ではないが、長時間かかるMachine LearningやDeep LearningのTrainingに欠かせないTMUXについて記載しておこうと思います。
sshでEC2などのcloud環境に接続してpythonコードを実行する場合、pythonを実行したはいいが、完了までに24h以上かかる場合など時々あると思います。そんなときdesktop PCであれば、問題ないのかもしれませんが、laptop / note pcを使用している場合だとターミナルのsessionが切れて実行が止まってしまうことがあるのではないかと思います。
そんなときに活躍する手段の1つのがTMUXだと思います。
TMUXとは
TMUXは、ターミナルマルチプレクサ(Terminal Multiplexer) の略だそうで、Linux 系のターミナル画面を複数のセッション、ウィンドウ、ペインに分割して利用することができます。
ターミナルを終了してもセッションが維持されるので、24時間以上かかるMachine Learning, Deep Learningの前処理やTrainingなどで非常に役立ちます。
例えば、コマンドを実行して翌日に処理結果や途中経過を確認しようとしたら SSH ログアウトしてしまっていたという悲劇を避けることができます。
詳細は、本家のgithubに記載されています。
https://github.com/tmux/tmux/wiki/Getting-Started
インストール
インストールについても本家のgithubに記載の通り行うことをお勧めいたします。
https://github.com/tmux/tmux/wiki/Installing
念のため、git cloneしてインストールの例は以下となります。
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure
make && sudo make install
セッション操作でよく使うコマンド
Create session
セッションの開始は以下のように行います。
# セッションを起動
$ tmux
# 名前付きセッションを起動
$ tmux new-session -s [session name here]
Detach
セッションを一時的に中断してメインに戻ります。
# Ctrl + b の後に、d を押す
Ctrl + b -> d
Attach / Attach with session name
中断していたセッションに戻ります。
# 中断していたセッションに戻る
$ tmux a
# 中断していたセッションに戻る(セッション名を指定)
$ tmux a -t name [session name here]
リモートデスクトップなどで画面サイズが変更された場合、-dでサイズがウィンドウサイズに戻ります。
$ tmux a -d -t [session name here]
Listing the session
セッションの一覧を表示します。個人的には、省略系(tmux -ls)のみしか使用していないかもしれません。
# 基本形
$ tmux list-sessions
# 省略形
$ tmux ls
Kill session
指定したセッションを終了します。
# セッション終了
$ tmux kill-session -t [session name here]
まとめ
今回は、Python – 長時間のML/DL Trainingに役立つTMUXについて記載しました。
本当は他にもたくさん便利なコマンドがあるのですが、今回記載した内容さえ抑えておけば、個人的には最低限はカバーできているのではないかと思います。