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

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

【HTCondor】job submission fileでfor文を使って、argumentを変更したい

色々と調べてやってみましたが、いい感じの方法が見つからないです

queue MagnetPolarity,NTupleId from (
	up,00083875
	down,00083879
)

lhcb.github.io

みたいな感じで、変数を下にあるリストから取り出してその都度、ジョブを投げるという方法もあるようです

ただ、これはfor文を使って、argumentを変更するのとはちょっと違う・・・
事前に、一度なんらかの方法でこのリストを用意しておかないといけないので・・・

今回の解決方法

自分が使ってる方法はシェルスクリプトの中で、for文相当のものを回して、その都度argumentsを書き換える方法

これがいいのかわかりませんが、HTCondorのsubmitファイルのオプションで良さそうなものが見つけられなかったのでしょうがないっす・・・

#!/bin/bash

submit=tmp.job

rm -f $submit

cat <<EOF > $submit
Universe       = vanilla
GetEnv         = True
request_memory = 100 MB

Error        = err.txt
Output       = out.txt

Executable   = hoge.py

EOF

for i in `seq 0 10`
do

    echo $i


    echo "Arguments    = ${i}" >> $submit
    echo "Queue" >> $submit
done

condor_submit $submit
rm -f $submit

みたいな感じ

補足説明

上のcatからEOFまでで、必要なsubmitファイルを用意する
for文で0から10まで回して、それをArgumentsに割り当てる
Queueで、ジョブを投げる

最後に用意したsubmitファイルをcondor_submitして完了

みたいな感じ

もっと良さげな方法が見つかればいいけど・・・

参考リンク

chtc.cs.wisc.edu