2012-10-09 11 views
1

파이썬 파이프 라인을 만들고 파이프 라인 스크립트에서 qsub을 사용하여 클러스터에 작업을 제출하는 다른 python 스크립트를 호출합니다 (이 작업은 op 70 작업으로 구성되어 있습니다). 이제 계속하려면 해당 작업의 출력이 필요합니다. 일.작업이 완료되면 클러스터 qsub 확인하십시오. python

모든 70 개의 작업이 완료 될 때까지 어떻게 파이썬 스크립트를 "일시 중지"할 수 있습니까?

서버에 제출하는 스크립트를 수정할 수 없으므로 내 스크립트에서 수행해야합니다. (AN AMD64 클러스터를 사용)

편집 :

os.system("python ScriptThatQsub.py arg1 arg2") 

난 아직이 작업을 해요 :

이 내가 다른 스크립트를 호출하는 방법입니다. interwebz를 검색하지만, 도울 수 없지만 궁금해 할 ...이게 가능한가 ??

+0

당신이 Sun Grid Engine, Enterprise 버전을 사용하고 같이 명령 줄 플래그 -sync y을 사용할 수 있습니까? 그렇다면 -hold_jid 으로 자신의 작업을 제출할 수 있습니다.이 작업은 작업을 시작하기 전에 작업이 완료 될 때까지 대기합니다. – jeff7

+0

나는 그 Ganglia를 생각한다. Rocks 클러스터 사용하기. 나는 여전히 클러스터에 새로운 편이어서 잘 모르겠습니다. – Henkes

+0

은 qsub 블록을 수행합니까? 작업이 끝날 때까지 기다리는 명령 줄 옵션이 있는지 확인하십시오. 내가 작업 한 모든 서버에서'qsub'가 즉시 반환되고 서버 측 데몬이 거기에서 작업 제어를 대신받습니다. 그렇다면'showq '결과를 주기적으로 (중간에 잠자고) 파싱하고 작업이 아직 실행 중이거나 대기 중인지 확인하는 것과는 별개로 작동하도록하는 방법을 확신하지 못합니다. – mgilson

답변

0

저는 클러스터에있는 Qstat을 변수에 넣었고 그 목록에 내 직업 이름이 있는지 확인했습니다. 그렇다면. 잠시 자. 모두에게 도움을 주셔서 감사합니다.

2

그냥 qsub -sync y my_job 또는

from subprocess import Popen 
job = Popen(["qsub", "-sync", "y", "my_job"]) 
job.communicate() 
관련 문제