루프 내에서 qsub
을 호출하여 셸 스크립트를 사용하여 컴퓨팅 클러스터에서 여러 작업을 시작합니다. 루프를 사용하여 각 작업의 시작 값을 다르게 지정합니다. 커맨드 라인에서 쉘 스크립트를 실행할 때 숫자를 쉘 스크립트에 넘기는 것만으로 요청할 각 작업의 코어 수를 지정하고 싶었습니다. 예를 들어가변 리소스 요청을 사용하는 PBS 지시문
./lauchJobs.sh 8
은 노드 당 8 개의 코어를 요청하는 작업을 시작합니다. 나는 (내가 세 개의 인수를 기대하기 때문에 ./launchJobs.sh 8 1 50
같은 네, 기술적으로 내 첫 번째 예는 있었어야 일)
#!/bin/tcsh
#check that all input arguments are there
if ($# != 3) then
echo "This script requires three input arguments: (i) number of cores per job, (ii) starting guessNum, (iii) ending guessNum"
else
foreach iNum (`seq $2 1 $3`) #loop over guess numbers
qsub -v iGuess=${iNum} estimate.pbs
end
endif
와
를 이렇게 시도 그리고 estimate.pbs는
#!/bin/tcsh
#PBS -l pmem=1gb,nodes=1:ppn=${nCores},walltime=60:00:00
로 시작 문제는 ${nCores}
이 PBS 지시어 안에 있기 때문에 쉘 스크립트에서 전달한 값으로 해석되지 않는다는 것입니다.
./lauchJobs.sh 8
처럼 스크립트에 전달하여 요청할 코어 수를 지정할 수있는 스크립트 파일과 PBS 파일을 작성할 수 있습니까?
'HERE' 문서는 당신을 도울 수 있습니다. ('[tcsh] HERE'을 검색하거나 ('EOF' 나'EOS'로 바뀌는 결과가 없다면) PBS 지시어 파일의 맨 위에있는 "tcsh"하지만 PBS가 무엇인지는 알지 못합니다. 지금 잠자리에 들었으므로 지금은 시간을 할애 할 수 없습니다. 내일은 어쩌면 바쁠 것입니다. 행운을 빈다. – shellter