Open2
toilとジョブスケジューラとTMPDIRとworkdir
toilでジョブスケジューラを使うときは、以下の3つの設定について、ジョブスケジューラごとに特性があるときがある。
- TMPDIRを指定するだけでうまくいくケース
- --workDirの指定が必要なケース
- --bypass-file-storeが必要なケース
workdirを指定した場合だったとおもうが、ジョブの結果を回収できないときがあるので、確認用の簡単なCWL定義を書いてテストしたほうがよい
- --tmp-outdir-prefixが必要なときもある。この場合prefixがつくだけなので、指定したディレクトリに新たにテンポラリファイルができるのではなく、prefixとしてつくので、注意する
mkdir -p tempdir/tmp_1
として
TMPDIR=$PWD/tempdir/tmp_1
--tmp-outdir-prefix=$PWD/tempdir/tmp_1
とすると、
tempdir/tmp_1の中には、普通のテンポラリファイルが作成されるようで
tempdirの中にtmp_1で始まるファイルができるのが、cwl由来のようである。
以下のような感じで、out of memoryがでたときは、defaultMemoryの指定がよくない可能性がある。
slurmstepd: error: Detected 1 oom-kill event(s) in step 15426.batch cgroup. Some of your processes may have been killed by the cgroup out-of-memory handler
--defaultMemory=64G
など、想定されるサイズをかいておくとよいだろう。
ただし
--defaultMemory
と--maxMemory
が両方とも同じときは、エラーになる場合があるので注意する。