2014-07-10 6 views
1

sbatch가 계산 노드에 스크립트를 복사하는 것을 막을 수 있습니까? 예를 들어 나는 실행하면slurm sbatch가 계산 노드에 스크립트를 복사하는 것을 중지하십시오.

sbatch --mem=300 /shared_between_all_nodes/test.sh 

test.sh이 실행 컴퓨팅 노드에서// slurmd/등은/var/lib 디렉토리/slurm-LLNL에 복사됩니다. 이 문제는/shared_between_all_nodes /에 test.sh가 필요로하는 다른 스크립트가 있기 때문에 경로를 하드 코딩하는 것을 피하고 싶습니다.

sge에서 qsub -b y를 사용하여 스크립트를 계산 노드에 복사하지 못하게 할 수 있습니다. slurm에 비슷한 옵션이나 설정이 있습니까?

답변

1

sbatch --wrap /shared_between_all_nodes/test.sh 

따옴표를위한 좋은 솔루션입니다

-D, --workdir=<directory> 
      Set the working directory of the batch script to directory before 
      it is executed. 

처럼 사용, 어디서나이 옵션을 sbatch 양식을 미사일 할 수 있도록 스크립트에 매개 변수가있는 경우 필요합니다.

sbatch 문서 http://slurm.schedmd.com/sbatch.html

에서

sbatch --wrap "/shared_between_all_nodes/test.sh param1 param2" 

는 --wrap = Sbatch는 간단한 "쉬"쉘 스크립트에 지정된 명령 문자열을 포장하고 slurm 컨트롤러에 해당 스크립트를 제출합니다. --wrap을 사용하면 스크립트 이름과 인수가 명령 행에 지정되지 않을 수 있습니다. 대신 sbatch 생성 랩퍼 스크립트가 사용됩니다.

0

스크립트가 복사 될 수 있지만 작업 디렉토리는 sbatch 명령이 실행되는 디렉토리입니다. 명령이 /shared_between_all_nodes/에서 실행되면 작동합니다.

것은 sbatch --wrap를 사용

sbatch --mem=300 -D /shared_between_all_nodes /shared_between_all_nodes/test.sh 
+0

작업 디렉토리가 아닌 제출 된 스크립트가있는 디렉토리를 가져올 수 있어야합니다. – tjjjohnson