리소스 예측 도구를 사용하여 여러 매개 변수 구성 target 을 실행하는 방법

이 문서에서는 여러 매개 변수 구성을 target 실행하고 Azure Quantum 리소스 추정기를 사용하여 비교하는 방법을 알아봅니다.

리소스 예측 도구를 실행하는 방법에 대한 자세한 내용은 리소스 예측 도구를 사용하는 다양한 방법을 참조하세요.

사전 요구 사항

리소스 예측 도구를 실행하려면 다음 필수 구성 요소가 필요합니다.

리소스 예측 도구에서 프로그램을 실행 Q# 하려면 다음이 필요합니다.

VS Code에서 Python을 사용하려면 다음도 필요합니다.

  • 최신 버전의 Python 및 VS Code용 Jupyter 확장을 설치합니다.

  • 최신 Azure Quantum qsharp 패키지입니다.

    python -m pip install --upgrade qsharp 
    

리소스 예측 도구에 작업을 제출하려면 다음이 필요합니다.


리소스 예측 도구를 사용하여 일괄 처리

Azure Quantum 리소스 추정기를 사용하면 동일한 양자 프로그램에서 여러 작업을 다시 실행하지 않도록 단일 작업이라고도 하는 작업 매개 변수의 여러 구성으로 작업을 제출할 수 있습니다.

리소스 예측 작업은 다음 두 가지 유형의 작업 매개 변수로 구성됩니다.

  • 대상 매개 변수: 큐비트 모델, QEC 체계, 오류 예산, 구성 요소 수준의 제약 조건 및 증류 단위.
  • 작업 인수: 프로그램에 전달할 수 있는 인수입니다(QIR 진입점에 인수가 포함된 경우).

하나의 항목은 매개 변수 및 작업 인수의 한 구성인 작업 매개 변수의 target 한 구성으로 구성됩니다. 여러 항목이 작업 매개 변수의 배열로 표시됩니다.

여러 항목을 단일 작업으로 제출할 수 있는 몇 가지 시나리오:

  • 모든 항목에서 동일한 작업 인수를 사용하여 여러 target 매개 변수를 제출합니다.
  • 모든 항목에서 작업 인수가 다른 여러 target 매개 변수를 제출합니다.
  • 여러 결과를 테이블 형식으로 쉽게 비교합니다.
  • 차트에서 여러 결과를 쉽게 비교합니다.

프로그램의 리소스 Q# 를 예측하는 경우 일괄 처리라고도 하는 여러 매개 변수 구성 target 을 실행할 수 있습니다. 를 사용한 일괄 처리 Q# 는 VS Code의 Jupyter Notebook 수행할 수 있습니다.

매개 변수 목록을 함수의 target 매개 변수에 전달하여 일괄 처리 추정을 paramsqsharp.estimate 수행할 수 있습니다. 다음 예제에서는 두 가지 매개 변수 구성을 target 단일 작업으로 제출하는 방법을 보여 줍니다. 첫 번째 구성은 기본 target 매개 변수를 사용하고 두 번째 구성은 큐비트 매개 변수와 QEC 체계를 floquet_code 사용합니다qubit_maj_ns_e6.

프로그램의 동일한 Jupyter Notebook 새 셀을 추가하고 다음 코드를 실행합니다Q#.

result_batch = qsharp.estimate("RunProgram()", params=
                [{}, # Default parameters
                {
                    "qubitParams": {
                        "name": "qubit_maj_ns_e6"
                    },
                    "qecScheme": {
                        "name": "floquet_code"
                    }
                }])
result_batch.summary_data_frame(labels=["Gate-based ns, 10⁻³", "Majorana ns, 10⁻⁶"])

클래스를 사용하여 추정 target 매개 변수 목록을 생성할 수도 있습니다EstimatorParams. 다음 코드에서는 매개 변수의 target 6개 구성을 단일 작업으로 제출하는 방법을 보여 줍니다.

from qsharp.estimator import EstimatorParams, QubitParams, QECScheme

labels = ["Gate-based µs, 10⁻³", "Gate-based µs, 10⁻⁴", "Gate-based ns, 10⁻³", "Gate-based ns, 10⁻⁴", "Majorana ns, 10⁻⁴", "Majorana ns, 10⁻⁶"]

params = EstimatorParams(num_items=6)
params.error_budget = 0.333
params.items[0].qubit_params.name = QubitParams.GATE_US_E3
params.items[1].qubit_params.name = QubitParams.GATE_US_E4
params.items[2].qubit_params.name = QubitParams.GATE_NS_E3
params.items[3].qubit_params.name = QubitParams.GATE_NS_E4
params.items[4].qubit_params.name = QubitParams.MAJ_NS_E4
params.items[4].qec_scheme.name = QECScheme.FLOQUET_CODE
params.items[5].qubit_params.name = QubitParams.MAJ_NS_E6
params.items[5].qec_scheme.name = QECScheme.FLOQUET_CODE

qsharp.estimate("RunProgram()", params=params).summary_data_frame(labels=labels)

참고

리소스 예측 도구로 작업하는 동안 문제가 발생하면 문제 해결 페이지를 검사 또는 에 문의하세요AzureQuantumInfo@microsoft.com.