작업 실행

비동기 제출

submit()은 회로를 보내고 블로킹 없이 즉시 작업 핸들을 반환합니다. 작업이 느릴 때(콜드 GPU 워커는 몇 분이 걸릴 수 있습니다), 여러 회로를 한 번에 제출하고 싶을 때, 또는 작업이 실행되는 동안 다른 일을 하고 싶을 때 사용하세요.

제출하고 대기

submit()은 QXelJob을 즉시 반환합니다. 상태는 PENDING으로 시작합니다. job.wait()를 호출해 작업이 종료 상태에 도달할 때까지 블로킹한 뒤, job.result()로 결과를 내려받습니다.

python
job = sim.submit(circuit, shots=256)
print(job.job_id, job.status)   # job_... PENDING

job.wait()                      # blocks until terminal
print(job.result())

여러 개 제출하고 나중에 수집

submit()은 블로킹하지 않으므로, 회로 배치를 한꺼번에 실행한 뒤 나중에 결과를 모을 수 있습니다:

python
jobs = [sim.submit(c, shots=256) for c in circuits]
results = [j.wait().result() for j in jobs]

다른 세션에서 재연결

job_id는 영속적입니다. 저장해 두면 다른 프로세스나 머신에서 나중에 get_job()으로 작업을 조회할 수 있습니다:

python
saved = sim.get_job("job_...")
if saved.is_done():
    print(saved.result())