Skip to main content
IBM Quantum Platform

작업 결과를 검색하고 저장합니다

  • 이 페이지의 코드는 다음 요구 사항을 사용하여 개발되었습니다. 다음 버전 이상을 사용하는 것이 좋습니다.

    qiskit-ibm-runtime~=0.45.1
    

퀀텀 워크플로우는 완료하는 데 시간이 오래 걸리고 여러 세션에 걸쳐 실행될 수 있습니다. Python 커널을 다시 시작하면 메모리에 저장된 모든 결과를 잃게 됩니다. 데이터 손실을 방지하기 위해 결과를 파일에 저장하고 IBM Quantum® 에서 과거 작업의 결과를 검색하여 다음 세션에서 중단한 부분부터 계속 진행할 수 있습니다.


IBM Quantum 에서 작업 결과를 가져옵니다

IBM 퀀텀은 모든 작업의 결과를 자동으로 저장하여 나중에 검색할 수 있도록 합니다. 이 기능을 사용하면 커널 재시작 시에도 퀀텀 프로그램을 계속하고 과거 결과를 검토할 수 있습니다. job_id 방법을 통해 프로그래밍 방식으로 작업의 ID를 가져오거나 워크로드 페이지에서 제출된 모든 작업과 해당 작업의 ID를 확인할 수 있습니다.

프로그래밍 방식으로 일자리를 찾으려면 QiskitRuntimeService.jobs 메서드를 사용하세요. 기본적으로 가장 최근에 제출된 작업이 반환되지만 백엔드 이름, 생성 날짜 등을 기준으로 작업을 필터링할 수도 있습니다. 다음 셀은 지난 3개월 동안 제출된 모든 작업을 찾습니다. created_after 인수는 datetime.datetime 객체여야 합니다.

import datetime
from qiskit_ibm_runtime import QiskitRuntimeService

three_months_ago = datetime.datetime.now() - datetime.timedelta(days=90)

service = QiskitRuntimeService()
jobs_in_last_three_months = service.jobs(created_after=three_months_ago)
jobs_in_last_three_months[:3]  # show first three jobs

Output:

[<RuntimeJobV2('d762oo5bjrds73ed2u80', 'estimator')>,
 <RuntimeJobV2('d762omnq1anc738d2cj0', 'sampler')>,
 <RuntimeJobV2('d762oma3qcgc73fse6dg', 'sampler')>]

백엔드, 작업 상태, 세션 등을 기준으로 선택할 수도 있습니다. 자세한 내용은 QiskitRuntimeService.jobs 를 참조하세요.

작업 ID가 있으면 QiskitRuntimeService.job 메서드를 사용하여 검색합니다.

# Get ID of most recent successful job for demonstration.
# This will not work if you've never successfully run a job.
successful_job = next(
    j for j in service.jobs(limit=1000) if j.status() == "DONE"
)
job_id = successful_job.job_id()
print(job_id)

Output:

d762omnq1anc738d2cj0
retrieved_job = service.job(job_id)
retrieved_job.result()

Output:

PrimitiveResult([SamplerPubResult(data=DataBin(meas=BitArray(<shape=(), num_shots=4096, num_bits=127>)), metadata={'circuit_metadata': {}})], metadata={'execution': {'execution_spans': ExecutionSpans([DoubleSliceSpan(<start='2026-03-31 20:19:56', stop='2026-03-31 20:19:58', size=4096>)])}, 'version': 2})

결과를 디스크에 저장

결과를 디스크에 저장하고 싶을 수도 있습니다. 이를 위해 Python 의 내장 JSON 라이브러리와 qiskit-ibm-runtime.의 인코더를 사용하십시오.

import json
from qiskit_ibm_runtime import RuntimeEncoder

with open("result.json", "w") as file:
    json.dump(retrieved_job.result(), file, cls=RuntimeEncoder)

그런 다음 별도의 커널에서 이 어레이를 디스크에서 로드할 수 있습니다.

from qiskit_ibm_runtime import RuntimeDecoder

with open("result.json", "r") as file:
    result = json.load(file, cls=RuntimeDecoder)

result

Output:

PrimitiveResult([SamplerPubResult(data=DataBin(meas=BitArray(<shape=(), num_shots=4096, num_bits=127>)), metadata={'circuit_metadata': {}})], metadata={'execution': {'execution_spans': ExecutionSpans([DoubleSliceSpan(<start='2026-03-31 20:19:56', stop='2026-03-31 20:19:58', size=4096>)])}, 'version': 2})
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.