Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【condor】DAGmanについてメモ

condorは1つのジョブを走らせて、それを見届けてくれる
DAGmanはcondorの拡張版みたいなものっぽい

ジョブA, B, Cと3つのジョブを走らせるとして、
Aが終わったらBを、Bが終わったらCを走らせる
みたいなそれぞれのジョブを関連付けて走らせることができる

詳しくは↓にある図を見てもらうとすぐに分かるかと
■ 参考 : Workflow management with DAGMan


ジョブA→B→CみたいなのはLinear型と呼ばれるらしい
上記のページのDAGman用サブミットファイルは

######DAG file######
##### Define Jobs ###
##### JOB JobName JobDescriptionFile
JOB A0 namd_run_job0.submit
JOB A1 namd_run_job1.submit
JOB A2 namd_run_job2.submit
JOB A3 namd_run_job3.submit

##### Relationship between Jobs ###
##### PARENT JobName CHILD JobName
PARENT A0 CHILD A1
PARENT A1 CHILD A2
PARENT A2 CHILD A3

みたいな感じ

最初にジョブの名前とそれぞれのサブミットファイルを定義
その後でジョブの関連を書くっぽい



あとはジョブA〜Cの前後にプリプロセスとポストプロセスを走らせることもできるらしい

######DAG file######
##### Define Jobs ###
##### JOB JobName JobDescriptionFile
JOB A0 namd_run_job0.submit
JOB A1 namd_run_job1.submit
JOB A2 namd_run_job2.submit
JOB A3 namd_run_job3.submit

##### Relationship between Jobs ###
##### PARENT JobName CHILD JobName
PARENT A0 CHILD A1
PARENT A1 CHILD A2
PARENT A2 CHILD A3

##### PRE or POST processing of a job
##### SCRIPT PRE/POST JobName ProcessScript
SCRIPT PRE A0 pre-script-temperature.sh
SCRIPT POST A3 post-script-energy.sh

シェルスクリプトになってるけど、ファイルの入出力があるならすべて絶対パスで書く必要がありそう


他の例として、
Aが終わったらBとCを走らせる
BとCが終わったら、Dを走らせるとかしたい場合は

■ 参考 : Node Job Submit File Contents

# File name: diamond.dag
#
JOB A diamond_job.condor
JOB B diamond_job.condor
JOB C diamond_job.condor
JOB D diamond_job.condor
PARENT A CHILD B C
PARENT B C CHILD D


ここのDAGの例も参考になるかも

■ 参考 : 2.10.7.9 DAG Splicing


どこにも書いてなかったのでこれもメモ
condor_submit_dagで走らせたジョブの関連の仕方は

condor_q -dag
で見るとわかりやすい


ランキング参加中です

↓クリックしていただけると嬉しいです〜