2013-10-31 2 views
0

는 지금 내가 클러스터에서 다음을 수행 오전 :이 작업을 자동화하는 작업 스크립트를 만드는 방법은 무엇입니까?

(I) qsub를-X -I -l walltime = 60 : 00 : 00, 노드 = 1 : PPN = 8

(II) 제출 다음과 같은 내용

#!/bin/bash 
i=1 
nohup ./a.out $i 2 42 & 
nohup ./a.out $i 43 60 & 
nohup ./a.out $i 61 74 & 
nohup ./a.out $i 75 85 & 
i=-1 
nohup ./a.out $i 2 42 & 
nohup ./a.out $i 43 60 & 
nohup ./a.out $i 61 74 & 
nohup ./a.out $i 75 85 & 

을 가지고 myjob (사용 ./myjob) (III) 전, 1 {에서 예 (I), 편집 myjob 파일, 변경, 사용 QSUB 나는 새로운 연결을 열이 제출, 후 - 1}을 {2, -2}로 변경하고 ./myjob을 제출하십시오.

i = 1, -1에서 i = 20, -20까지 반복합니다.

이 기능을 자동화 할 방법이 없습니까? 작업 배열, 루프 등을 사용하여이 작업을 얻으려고 하루를 보냈습니다. (실제로 하루 이상) 160 개의 프로세서를 요청하고이 작업을 제출하거나 우리에게 인간이 아직없는 빠른 방법이 있어야합니다. 컴퓨팅에서 그 단계로 나아 갔습니까?

어떤 도움도 매우 높이 평가됩니다.

PS - 예, 저는 컴퓨터 마법사가 아니라는 사실을 알고 있습니다. 제발 내 무지를 용서해주십시오.

답변

0

이것은 토크와 비슷해 보이므로 다음과 같은 스크립트가 원하는대로해야합니다. 스케줄러가 작업에 배타적으로 노드를 할당하고 8 코어 노드에서 모든 코어를 사용하려고한다는 가정에 기초합니다.

#!/bin/bash 
#PBS -l walltime=60:0:0 
#PBS -t 1-8 
#PBS -l nodes=1:ppn=8 
i=${PBS_ARRAYID} 
nohup ./a.out $i 2 42 & 
nohup ./a.out $i 43 60 & 
nohup ./a.out $i 61 74 & 
nohup ./a.out $i 75 85 & 
i=-${PBS_ARRAYID} 
nohup ./a.out $i 2 42 & 
nohup ./a.out $i 43 60 & 
nohup ./a.out $i 61 74 & 
nohup ./a.out $i 75 85 & 
wait