QDK Python 패키지로 Azure Quantum에 작업 제출

() 패키지를 사용하여 , , , 및 프로그램을 에 제출합니다.

이 문서에서는 지원되는 각 양자 언어 또는 프레임워크에 대한 작업 제출 예제를 제공합니다. OpenQASM 코드가 필요하지 않은 대화형 Python 또는 Q# 워크플로의 경우, QDK용 VS Code 확장을 사용하여 작업 제출하기를 참조하세요.

Prerequisites

  • 활성 구독이 있는 Azure 계정.

  • Azure Quantum 작업 영역입니다. 작업 영역을 만들려면 작업 영역 만들기를 Azure Quantum 참조하세요.

  • Python 3.10 이상.

  • Jupyter Notebook을 사용하는 경우 VS Code용 Jupyter 확장 및 ipykernel 패키지와 같은 Jupyter 환경이 필요합니다.

  • 확장을 사용하여 Azure CLI 설치합니다quantum.

    az extension add --upgrade --name quantum
    
  • jupyter azure 패키지의 최신 버전을 qdk 및 Python 추가 기능과 함께 설치합니다.

    pip install --upgrade "qdk[azure,jupyter]"
    

    Qiskit 또는 qiskit 프로그램을 제출하려면 cirq 및 Cirq 추가 기능을 설치하세요.

    pip install --upgrade "qdk[qiskit,cirq]"
    

Azure Quantum 작업 영역에 연결

Warning

2027년 1월 11일부터 Azure Quantum Quantum 작업 영역 사용자가 작업 결과에 액세스하려면 Quantum Workspace Data Reader 또는 Quantum Workspace Data Contributor 역할이 필요합니다. 작업을 제출하려면 Quantum 작업 영역 데이터 기여자 역할이 필요합니다. 워크플로가 중단되는 것을 Azure Quantum 방지하려면 최종 기한 전에 해당 사용자에게 이러한 역할을 할당합니다. 자세한 내용은 작업 영역의 사용자에 대한 데이터 액세스 역할 할당을 참조하세요.

작업을 제출하기 전에 Azure Quantum 작업 영역에 연결되어 있어야 합니다. qdk.azure 모듈은 Workspace 작업 영역에 연결하는 데 사용하는 Azure Quantum 개체를 제공합니다. 작업 영역에 연결하려면 다음 단계를 수행합니다.

Azure CLI 사용하여 로그인

아직 로그인하지 않은 경우 Jupyter Notebook을 열기 전에 터미널에서 Azure 로그인합니다.

az login

터미널에서 로그인하지 않으면 Python를 통해 Quantum 작업 영역에 연결할 때마다 인증해야 합니다. 계정이 여러 구독에 액세스할 수 있는 경우 Azure Quantum 작업 영역이 포함된 구독을 설정하세요.

az account set --subscription <subscription-id>

세션이 만료되거나 다른 Azure 계정을 사용하려는 경우 다시 실행 az login 합니다.

작업 영역의 리소스 ID 가져오기

  1. Azure Portal에 로그인합니다.
  2. 작업을 제출하려는 Quantum 작업 영역으로 이동합니다.
  3. 개요 페이지에서 리소스 ID를 찾아 복사합니다.

작업 영역에 연결

  1. Quantum 작업 영역에 연결하려면 복사한 리소스 ID를 사용하여 Workspace 개체를 만듭니다.

    from qdk.azure import Workspace
    
    workspace = Workspace(resource_id="") # Add your resource ID
    

    메모

    Y

  2. 연결을 확인하고 작업 영역에서 사용 가능한 targets을 확인합니다.

    for target in workspace.get_targets():
        print(target.name)
    

다른 연결 및 인증 옵션은 작업 영역에 연결을 참조하세요Azure Quantum.

메모

다음 예제에서는 시뮬레이터에 작업을 제출 합니다 targets. 작업 영역에서 사용할 수 있는 targets는 구성한 공급자에 따라 달라집니다.

프로그램 준비 및 제출

양자 언어 또는 프레임워크에 대한 탭을 선택합니다.

qdk.qsharp 모듈을 사용하여 Q# 코드를 정의하거나 로드하고, 진입점을 QIR로 컴파일한 다음, QIR를 Azure Quantumtarget에 제출합니다.

Q# 프로그램을 정의하고 컴파일합니다

  1. target Q#에서 지원하는 targetQIR 프로필로 Azure Quantum을 초기화합니다.

    from qdk import qsharp, TargetProfile
    
    qsharp.init(target_profile=TargetProfile.Base)
    

    QIR target 프로필에 대한 자세한 내용은 QDKAzure QuantumQIR의 프로필은 target을 참조하세요.

  2. Q# 작업을 정의합니다. 예를 들어 다음 RandomBit 작업을 사용합니다.

    qsharp.eval("""
        operation RandomBit() : Result {
            use q = Qubit();
            H(q);
            return MResetZ(q);
        }
    """)
    
  3. 로컬 시뮬레이터에서 작업을 테스트합니다.

    print(qsharp.run("RandomBit()", shots=10))
    
  4. 작업을 QIR로 컴파일하십시오.

    from qdk.qsharp import compile
    
    program = compile("RandomBit()")
    

Q# 작업 제출

  1. 작업 영역에서 호환되는 target 파일을 선택합니다.

    target = workspace.get_targets("rigetti.sim.qvm")
    
  2. 컴파일된 프로그램을 제출합니다.

    job = target.submit(program, "qsharp-job", shots=100)
    print("Job ID:", job.id)
    
  3. 작업이 완료되고 결과를 검색할 때까지 기다립니다.

    job.wait_until_completed()
    print("Status:", job.details.status)
    
    results = job.get_results()
    print(results)