Open2

toilとジョブスケジューラとTMPDIRとworkdir

ManabuIshiiManabuIshii

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由来のようである。
ManabuIshiiManabuIshii

以下のような感じで、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が両方とも同じときは、エラーになる場合があるので注意する。