2013-03-26 1 views
0

2 클러스터 작업을위한 프로그래밍 스크립트입니다.두 클러스터 사이의 qsub 스크립트에서 ssh를 사용하여 로컬 스크립트를 실행하는 방법은 무엇입니까?

내 목표는 하나의 클러스터에만 초점을 맞추고 모든 스크립트 소스 코드가 클러스터 중 하나에 있다는 것을 의미합니다. 클러스터 AI의 예를 들어

모든 스크립트는 지금은 그때 ssh [email protected] 'bash -s' < local_ClusterA_script.sh 클러스터 B와 같은 bash는 스크립트를 알고

클러스터 B.에 다시 설치하지 않고도이 스크립트를 실행하려면 B를 클러스터에 ssh를하려면, 설치 ClusterA에서 local_ClusterA_script.sh를 실행하십시오.

지금은 클러스터 A로부터 클러스터 B에 일괄 작업을 제출 SSH를 사용할 필요가 더 문제가있다가,이 배치 작업이 클러스터 A.에서 스크립트를 필요로

# run.sh : 

#!/bin/bash 

INPUT_ARGS="[email protected]" 
qsub -v argv="$INPUT_ARGS" -l arch=x86_64 -l walltime=10:00:00 -l vmem=8GB -l nodes=1:ppn=6 $CLUSTERA_BIN/run.script 

# run.script 
runprogram() 
{ 
    #Input 
    INPUT_ARGS=`echo $argv` 
    $CLUSTERA_BIN/runprogram.py "$INPUT_ARGS" ; 
} 

그래서 내 문제는 어디 클러스터 B는 $CLUSTERA_BIN/runprogram.py을 찾습니까? run.script에서 코드를 클러스터 B에서 성공적으로 실행하는 방법은 무엇입니까?

하나의 명령으로 ssh [email protected] 'bash -s' < run.sh $MYARGS이 될 것이라고 생각했지만 분명히 이렇게 작동하지 않습니다.

답변

2

클러스터 B는 필요한 파일에 액세스해야합니다. 또한 버전 관리 시스템을 사용하여 고려할 수 B를 클러스터 (의미 scp, rsync, ...) 파일을

  1. 변경 당신의 마음과 사본 (같은 svn, git, ... : 그래서 당신은 몇 가지 옵션이 있습니다)를 사용하여 여러 호스트간에 파일을 동기화 할 수 있습니다.
  2. 클러스터 B에 파일이 필요하면 즉시 클러스터 A에서 가져옵니다 (예 : 암호가 없음 scp).
+0

내 경험이 배치 스크립트이다 (NFS, SMB는 ... 의미) 디렉터리는 B.

  • 을 ... 클러스터에 클러스터 A와 공유 한 디렉토리에서 파일을 넣어 네트워크를 통해 도달 할 수있는 파일 시스템에서 사람들이 일반적으로이 일을 수행하는 방법입니다. – dbeer