コマンドをqsubで直接ジョブに投げられるようにする
TL;DR
スパコンを使っていると、qsubを使ってジョブを投げることがあるのではないかと思います。
このときに、ワンライナーを実行したいときなど、一回ファイル作ってからコマンドを投げるのが非常にめんどくさいことがあります。そこで、Pythonのargparseとsubprocessを使って擬似的にコマンドからジョブを投げられるようにしました。
やっている事自体は単純で、引数としてコマンドと各種パラメーターを受け取って、ファイルに加工して作成したファイル対してqsubを投げるだけです。
コード
運用
ファイルのある場所に対してパスを通して、ついでにシンボリックリンクを作成しておけばいつでも使えるようになるのでおすすめです。仮に上のファイル名をqsubpy.pyとしておくと
みたいなことをしておけば
というような感じでジョブが投げられます。リソースを指定したければ
作成したファイルなどが必要ないときは--removeを使ってもらえれば、作成されたshファイルは消えます。また、shファイルの名前などを指定したいときは--name hoge.shしてください。デフォルトでは、日付+ランダムな10桁の整数を名前につけます。
みたいな感じです。個人的には余り必要を感じませんが、引数を足せば当然簡単にlogとかそのへんもいじれるので、やってみるとより便利になる気がしました。
注意点
- シバン行は各自の環境に合わせてください
- 実行権限がなければ
chmod u+x qsubpyとかしてください