Udostępnij za pośrednictwem


Jak uruchomić wiele konfiguracji parametrów target za pomocą narzędzia do szacowania zasobów

Z tego artykułu dowiesz się, jak uruchomić wiele konfiguracji parametrów target i porównać je przy użyciu narzędzia do szacowania zasobów usługi Azure Quantum.

Aby uzyskać informacje o sposobie uruchamiania narzędzia do szacowania zasobów, zobacz Różne sposoby korzystania z narzędzia do szacowania zasobów.

Wymagania wstępne

Do uruchomienia narzędzia do szacowania zasobów wymagane są następujące wymagania wstępne:

Do uruchamiania Q# programów w narzędziu do szacowania zasobów potrzebne są następujące elementy:

Jeśli chcesz użyć języka Python w programie VS Code, potrzebne są również następujące elementy:

  • Zainstaluj najnowszą wersję języka Python i rozszerzeń Jupyter dla programu VS Code.

  • Najnowszy pakiet usługi Azure Quantum qsharp .

    python -m pip install --upgrade qsharp 
    

Aby przesłać zadania do narzędzia do szacowania zasobów, potrzebne są następujące elementy:

  • Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta platformy Azure, zarejestruj się bezpłatnie i zarejestruj się w celu korzystania z subskrypcji z płatnością zgodnie z rzeczywistym użyciem.
  • Obszar roboczy usługi Azure Quantum. Aby uzyskać więcej informacji, zobacz Tworzenie obszaru roboczego usługi Azure Quantum.

Przetwarzanie wsadowe za pomocą narzędzia do szacowania zasobów

Narzędzie do szacowania zasobów usługi Azure Quantum umożliwia przesyłanie zadań z wieloma konfiguracjami parametrów zadania, nazywanymi również elementami, co pozwala uniknąć ponownego uruchamiania wielu zadań w tym samym programie kwantowym.

Zadanie szacowania zasobów składa się z dwóch typów parametrów zadania:

  • Target parametry: model kubitów, schematy QEC, budżet błędu, ograniczenia dotyczące poziomu składników i jednostek destylowania.
  • Argumenty operacji: argumenty, które można przekazać do programu (jeśli punkt wejścia QIR zawiera argumenty).

Jeden element składa się z jednej konfiguracji parametrów zadania, czyli jednej konfiguracji target parametrów i argumentów operacji. Kilka elementów jest reprezentowanych jako tablica parametrów zadania.

Niektóre scenariusze, w których można przesłać wiele elementów jako jedno zadanie:

  • Prześlij wiele target parametrów z tymi samymi argumentami operacji we wszystkich elementach.
  • Prześlij wiele target parametrów z różnymi argumentami operacji we wszystkich elementach.
  • Łatwe porównywanie wielu wyników w formacie tabelarycznym.
  • Łatwe porównywanie wielu wyników na wykresie.

Dzielenie zadań na partie przy użyciu różnych języków

Wybierz odpowiednie karty, aby uzyskać przykłady przetwarzania wsadowego narzędzia do szacowania zasobów.

Jeśli szacujesz zasoby Q# programu, możesz uruchomić wiele konfiguracji parametrów target , nazywanych również dzieleniem na partie. Przetwarzanie wsadowe Q# można wykonać w notesie Jupyter Notebook w programie VS Code.

Szacowanie wsadowe można wykonać, przekazując listę parametrów target do params parametru qsharp.estimate funkcji. W poniższym przykładzie pokazano, jak przesłać dwie konfiguracje parametrów target jako jedno zadanie. Pierwsza konfiguracja używa parametrów domyślnych target , a druga konfiguracja używa parametru kubitu qubit_maj_ns_e6 i schematu floquet_code QEC.

W tym samym notesie Jupyter Notebook programu Q# dodaj nową komórkę i uruchom następujący kod:

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⁻⁶"])

Możesz również utworzyć listę parametrów szacowania target przy użyciu EstimatorParams klasy . Poniższy kod przedstawia sposób przesyłania sześciu konfiguracji parametrów target jako pojedynczego zadania.

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)

Uwaga

Jeśli wystąpi jakikolwiek problem podczas pracy z narzędziem do szacowania zasobów, zapoznaj się ze stroną Rozwiązywanie problemów lub skontaktuj się z .AzureQuantumInfo@microsoft.com