작업 배열의 작업 색인을 다른 bash 스크립트의 매개 변수로 전달하려고합니다.LSF 작업 배열의 작업 색인 참조
numSims=3
numTreatments=6 # uses numTreatments top rows of parameters.csv
maxFail=10
j=1
while [ $j -le $numSims ];
do
bsub -q someQueue -J "mySim[1-$numTreatments]%2" ./another_script.sh $LSB_JOBINDEX $j $maxFail
let j=j+1
done
여기에 궁극적 인 아이디어는 1, ..., numTreatments
, numSims
작업 (시뮬레이션)의 각각에 대해 제출하는 것입니다. 한 번에 두 개의 작업을 실행하고 싶습니다 (%2
). 출력 형식은 XX_indexNumber_simNumber입니다. 여기서 indexNumber는 1, ..., numTreatments
, simNumber는 1, ..., numSims
에서 실행됩니다.
이상 적으로이 스크립트의 일부로 제출 된 모든 것은 동일한 작업 ID를 갖습니다. j
이있는 모든 작업에 구별 된 작업 ID가 할당되어 있기 때문에 아직 올바르게 설정되지 않았습니다. 즉각적인 문제는 another_script.sh가 $LSB_JOBINDEX
을 입력으로 인식하지 못한다는 것입니다. 첫 번째로 전달 된 매개 변수는 두 개 뿐이며 $j
과 $maxFail
입니다.$LSB_JOBINDEX
대신 다른 변수를 넣으면 아무런 문제가 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
편집 - 내가 시도한 몇 가지 : this link에서 "$LSB_JOBINDEX"
, ${LSB_JOBINDEX}
, %I
및 I=$LSB_JOBINDEX; bsub ... $I $j $maxFail
'$ LSB_JOBINDEX'가 설정된 곳이 표시되지 않습니다. 비어 있고 따옴표가 붙지 않으므로 마치 행동에 일관성이없는 것처럼 보이는 것입니다. –
내가 이해하는 바로는, [LSB_JOBINDEX]는 작업 배열에 대해 자동으로 정의됩니다 (예 : [here] (http://rc.fas.harvard.edu/kb/high-performance-computing/lsf-submitting-lots-of- short-jobs-job-arrays /)와 [here] (http://www.csc.fi/english/pages/murska_guide/batch_jobs/serial_batch_jobs) – Sarah
글쎄, 그때 웬일인지는 그렇지 않다. 어쨌든 나는 그것과 다른 변수들에 따옴표를 두는 것을 추천한다. –