Skip to main content
IBM Quantum Platform

키스킷 0.6 릴리즈 노트


0.6

테라 0.6

강조표시

이번 릴리스에는 새로운 공식 커뮤니케이션 형식(Qobj)을 중심으로 한 내부 구성 요소의 재설계와 함께 사용자 경험을 전반적으로 개선하기 위해 오랫동안 기다려온 기능들이 포함되어 있습니다. 0.5 릴리스와 비교한 주요 내용은 다음과 같습니다:

  • 상호 운용성(Qobj 사양 기반) 및 확장성(새로운 백엔드로 키스킷을 원활하게 확장할 수 있는 기능) 개선
  • 프로세스를 간소화하고 사용자 자격 증명의 자동 로딩을 지원하기 위한 IBM Q 백엔드의 자격 증명 및 인증 처리를 위한 새로운 옵션
  • 시각화 유틸리티 개편: 이제 Jupyter 사용자는 세련된 대화형 시각화를 사용할 수 있으며, 회로 드로어(matplotlib 기반 버전 포함)도 개선되었습니다
  • 회로 변환을 중심으로 한 성능 개선: 회로 컴파일의 병렬화 및 수많은 최적화를 포함하여 보다 유연하고 모듈화된 아키텍처를 위한 기반이 마련되었습니다

호환성 고려사항

이번 릴리스에서는 이전 버전과 호환되지 않는 일부 변경 사항이 도입되었습니다. 다음 참고 사항에는 새로운 변경 사항에 적응하는 방법에 대한 정보가 포함되어 있습니다.

제거 QuantumProgram

0.5 릴리스에서 암시했듯이 QuantumProgram 클래스는 이제 더 이상 사용되지 않으며 개별 컴포넌트(BaseJob, QuantumCircuit, ClassicalRegister, QuantumRegister)로 직접 작업하는 것을 권장합니다, qiskit)를 직접 사용할 수 있습니다.

전환에 대한 자세한 내용은 0.5 릴리즈 노트와 예시를 참조하세요:

from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit import Aer, execute

q = QuantumRegister(2)
c = ClassicalRegister(2)
qc = QuantumCircuit(q, c)

qc.h(q[0])
qc.cx(q[0], q[1])
qc.measure(q, c)

backend = get_backend('qasm_simulator')

job_sim = execute(qc, backend)
sim_result = job_sim.result()

print("simulation: ", sim_result)
print(sim_result.get_counts(qc))
IBM Q 인증 및 Qconfig.py

IBM Q 백엔드 사용 시 인증을 위한 자격 증명 관리가 확장되었으며, 편의를 위해 사용할 수 있는 새로운 옵션이 추가되었습니다:

  1. 자격 증명을 디스크에 한 번 저장하면 이후 세션에서 자동으로 로드됩니다. 이는 일회성 메커니즘을 제공합니다:

    from qiskit import IBMQ
    IBMQ.save_account('MY_API_TOKEN', 'MY_API_URL')

    이후에는 load_accounts() 을 호출하여 자격 증명을 디스크에서 자동으로 로드할 수 있습니다:

    from qiskit import IBMQ
    IBMQ.load_accounts()

    또는 세션에서 해당 계정만 사용하려는 경우 특정 계정만 로드할 수 있습니다:

    IBMQ.load_accounts(project='MY_PROJECT')
  2. 환경 변수를 사용합니다. QE_TOKENQE_URL 을 설정하면 IBMQ.load_accounts() 호출이 자동으로 자격 증명을 로드합니다.

또한 프로그램 폴더에 Qconfig.py 파일을 만들고 자격 증명을 명시적으로 전달하는 이전 방법도 계속 지원됩니다.

백엔드 작업

테라 0.6 에 새로운 메커니즘이 백엔드 획득을 위한 권장 방법으로 도입되어 더욱 강력하고 통합된 필터링이 가능하며 새로운 자격 증명 시스템과 통합되었습니다. 이전의 최상위 메서드 register(), available_backends()get_backend() 는 계속 지원되지만, 보다 복잡한 필터링이 가능한 qiskit.IBMQ 및 qiskit.Aer 객체를 직접 사용하는 것을 선호하여 다음 버전에서는 지원되지 않을 예정입니다.

예를 들어 로컬 백엔드를 나열하고 사용하는 경우입니다:

from qiskit import Aer

all_local_backends = Aer.backends(local=True)  # returns a list of instances
qasm_simulator = Aer.backends('qasm_simulator')

그리고 원격 백엔드를 나열하고 사용하기 위한 것입니다:

from qiskit import IBMQ

IBMQ.enable_account('MY_API_TOKEN')
5_qubit_devices = IBMQ.backends(simulator=True, n_qubits=5)
ibmqx4 = IBMQ.get_backend('ibmqx4')

또한 로컬 시뮬레이터의 이름이 간소화되었음을 참고하세요. 이전 이름을 계속 사용할 수 있지만 새롭고 짧은 이름을 사용하는 것이 좋습니다:

키스킷 테라 0.5
키스킷 테라 0.6
'local_qasm_simulator''qasm_simulator'
'로컬_스테이트벡터_시뮬레이터''상태 벡터_시뮬레이터'
'local_unitary_simulator_py''유니타리_시뮬레이터'
백엔드 및 작업 API 변경 사항
  • IBM Q 백엔드에 제출된 작업의 기능이 개선되었습니다. 취소 및 크레딧 보충(job.cancel())이 가능하며, 특정 백엔드에서 실행된 이전 작업을 작업 ID(backend.retrieve_job(job_id)) 또는 최신 작업의 일괄 검색(backend.jobs(limit))으로 검색할 수 있습니다

  • 각 개별 작업 상태를 확인할 수 있는 속성(queued, running, validating, done , cancelled)이 더 이상 존재하지 않습니다. 작업 상태를 확인하려면 job.status 에 대한 ID 비교를 사용하세요:

    from qiskit.backends import JobStatus
    
    job = execute(circuit, backend)
    if job.status() is JobStatus.RUNNING:
        handle_job(job)

간소화된 API 사용 방법에 대한 자세한 내용은 IBMQJob 클래스의 새 문서를 참조하세요.

  • BaseBackendBaseJob 의 여러 멤버는 더 이상 프로퍼티가 아니라 메서드이므로 함수로 호출해야 합니다.

    키스킷 테라 0.5
    키스킷 테라 0.6
    backend.namebackend.name()
    backend.statusbackend.status()
    backend.configurationbackend.configuration()
    backend.calibrationbackend.properties()
    backend.parametersbackend.jobs () backend.retrieve_job (job_id)
    job.statusjob.status()
    job.cancelledjob.queue_position()
    job.runningjob.cancel()
    job.queued
    job.done
더 나은 Jupyter 도구

새 릴리즈에는 Jupyter 노트북 사용 시 사용자 환경 개선 사항이 포함되어 있습니다.

첫째, 카운트 히스토그램과 양자 상태의 새로운 대화형 시각화가 제공됩니다: plot_histogram()plot_state()`. 이러한 메서드는 환경이 Jupyter이고 인터넷 연결이 존재하는 경우 새로운 대화형 종류로 기본 설정됩니다.

둘째, 새 릴리스에서는 코드의 진행 상황을 추적할 수 있는 주피터 셀 매직 기능을 제공합니다. IBM Q 백엔드에 제출된 작업의 상태를 추적하려면 %%qiskit_job_status 을 사용하세요. 컴파일/실행 진행 상황을 추적하려면 %%qiskit_progress_bar 을 사용하세요.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.