dask.distributed
으로 클러스터를 실행 중입니다. 현재 GUI로 사용하는 Jupyter 노트북으로 작업을 클러스터에 제출합니다.dask/distributed 진행 막대가있는 응답 성 IPython 노트북
각 노트북 셀에는 다음 코드가 들어 있습니다.
%pylab inline
%load_ext autoreload
%autoreload 2
from distributed import progress
sys.path.append('/path/to/my/python/modules/on/NAS')
import jobs
jobid = jobs.add_new_job(...)
r = jobs.start_job(jobid)
progress(r)
jobs
은 내 파이썬 모듈의 이름입니다. jobs.add_new_job
은 작업 식별자가있는 문자열을 반환합니다. jobs.start_job
은 distributed.client.Future
의 목록을 반환합니다. 작업의 최종 결과는 PDF의 일부 숫자와 일부 플롯이 포함 된 보고서입니다.
이제 처리중인 내용과 대기중인 내용에 대한 작업 표시 줄을 구현하고 싶습니다.
제 목표는 다음 시나리오를 구현하는 것입니다.
내 팀원은 새 작업에 대한 데이터를 준비하고 브라우저에서 Jupyter 노트북을 열고 add_new_job
으로 전화하여 셀에 작업 매개 변수를 입력 한 다음이 셀을 실행 한 다음 계산을 완료 할 때까지 대기합니다. 끝난. 그는 또한 페이지를 열어두고 진행 상황을 관찰 할 수 있습니다.
지금까지 셀을 한 번 실행하고 모든 것이 완료 될 때까지 대기함으로써 클러스터에 단일 작업을 제출하면 모든 것이 매력처럼 작동한다는 것을 발견했습니다.
단순히 셀 코드를 편집하여 다시 실행하면 하나의 작업을 더 제출하려고하면 클러스터가 먼저 제출 된 작업을 계산하지 않습니다. 내 설명은 r
이 삭제되고 소멸자가 취소 요청을 클러스터에 보냅니다.
노트북을 복사하여 새 작업을 제출하려고하면 브라우저에 빈 페이지가 새로 열리고 노트북이로드되어 사용자가 아무 것도 할 수 없을 때까지 시간이 오래 걸립니다.
또한 진행률 표시 줄은 progress
으로 표시되며 매우 자주 사라집니다.
나는 JupyterHub에 관해 이미 읽었지만, 현재는 그것을 사용하는 것이 무거운 포병이있는 총 참새 같아서 더 간단한 방법이 있어야한다고 생각합니다. 이것의
감사를 실행할 때마다 삭제되지 않습니다 일부 결과 집합에
r
를 추가하는 것입니다. 그러면 노트북이 작업 대기열 관리자가됩니까? – wl2776