2016-10-14 17 views
0

내 부서의 컴퓨팅 클러스터를 Sun Grid Engine과 함께 사용 중입니다.동시에 여러 qsub 명령

여러 R 작업을 실행해야 할 때 보통 'R CMD BATCH r01.r', 'R'이있는 s01.sh, s02.sh, ..., s50.sh라는 쉘 스크립트 파일을 작성합니다. CMD BATCH r02.r ', ...,'R CMD BATCH r50.r '이 그 내용입니다.

그런 다음 'PUTTY'를 열고 로그인 한 다음 'qsub s01.sh', 'qsub s02.sh'.... 등을 입력해야합니다.

수백 개의 작업이있는 경우 수 백 가지 작업을 수동으로 입력하는 것이 실제 작업입니다. 이 'qsub'명령을 동시에 실행할 수 있습니까?

답변

1

qsub 명령을 순차적으로 실행해야한다고 생각합니다. qsub 자체가 상당히 빠르지 만 말입니다. 제출 된 명령은 아마도 병렬로 실행됩니다.

루프가 필요합니다.

이미 r*.r 파일을 만든 가정 할 때,이 작은 쉘 스크립트와 함께 할 쉽게 :

#!/bin/bash 

for file in r*.r ; do 
    script=$(echo $file | sed 's/^r/s/;s/\.r$/.sh/') 
    ( 
     echo "#/bin/sh" 
     echo "R CMD BATCH $file" 
    ) > $script 
    chmod +x $script 
    qsub $script 
done 
+0

고맙습니다.하지만 저는 아직 이해가되지 않습니다. 그렇다면 코드를 직접 입력해야합니까? 아니면 blahblah.sh 파일을 만들고 .sh 파일에 코드를 포함해야합니까? – user67275

+0

@ user67275 : 후자가 훨씬 쉽습니다. 'submit-jobs.sh'라는 스크립트를 만들고,'chmod + x submit-jobs.sh'을 실행 한 다음 스크립트를 실행하십시오. (필자는 테스트하지 않았으므로 시스템에'qsub '가 없습니다.) –

1

나는 실행되는 스크립트가 현재 폴더에 있다고 가정합니다.

for file in s*.sh; do; qsub $file; done