Udostępnij za pośrednictwem


Jak używać znanych oszacowań za pomocą narzędzia do szacowania zasobów

Z tego artykułu dowiesz się, jak używać wstępnie obliczonych oszacowań i zoptymalizować wykonywanie 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 uruchamiania narzędzia do szacowania zasobów.

Wymagania wstępne

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 
    

Używanie znanych oszacowań dla operacji

Jeśli znasz już pewne oszacowania dla operacji, na przykład z opublikowanego artykułu, jednym ze sposobów skrócenia czasu wykonywania jest uwzględnienie znanych szacunków i uwzględnienie ich w ogólnym koszcie programu.

Niektóre scenariusze, w których można wykonać szacowanie na podstawie wstępnie obliczonych oszacowań:

  • Chcesz wypróbować nowatorski algorytm opisany w dokumencie, aby sprawdzić, czy poprawia wydajność programu. Możesz wziąć oszacowania z papieru i włączyć je do programu.
  • Chcesz opracować program od góry do dołu, czyli rozpocząć programowanie z funkcji main, a następnie zaimplementować niższe poziomy. Możesz użyć znanych szacunków na najwyższym poziomie z oczekiwanymi oszacowaniami dla całego programu. W miarę postępu procesu programowania nowe składniki zaczynają wywoływać znane oszacowania i oczekiwane szacunki są zastępowane przez rzeczywistą implementację. W ten sposób oszacowania dla całego programu są znane z góry i są bardziej precyzyjne w miarę postępów rozwoju.

Za pomocą AccountForEstimatesQ# operacji można przekazać znane szacunki do narzędzia do szacowania zasobów.

Uwaga

Operacja specjalna jest operacją AccountForEstimates wewnętrzną narzędzia do szacowania zasobów. Nie jest obsługiwana przez inne wykonanie targets.

Rozważmy na przykład następującą Q# operację o nazwie FactoringFromLogicalCounts , która przyjmuje listę znanych szacunków i listę kubitów.

import Microsoft.Quantum.ResourceEstimation.*;

operation FactoringFromLogicalCounts() : Unit {
    use qubits = Qubit[12581];

    AccountForEstimates(
        [TCount(12), RotationCount(12), RotationDepth(12),
         CczCount(3731607428), MeasurementCount(1078154040)],
        PSSPCLayout(), qubits);
}

Operacja AccountForEstimates może przyjmować następujące parametry:

Funkcje z AccountForEstimates opis
AuxQubitCount(amount : Int) Zwraca krotkę, którą można przekazać do AccountForEstimates operacji, aby określić, że liczba kubitów pomocniczych jest równa amount.
TCount(amount : Int) Zwraca krotkę, którą można przekazać do AccountForEstimates operacji, aby określić, że liczba bram T jest równa amount.
MeasurementCount(amount : Int) Zwraca krotkę, którą można przekazać do AccountForEstimates operacji, aby określić, że liczba pomiarów jest równa amountwartości .
RotationCount(amount : Int) Zwraca krotkę, którą można przekazać do AccountForEstimates operacji, aby określić, że liczba obrotów jest równa amount.
RotationDepth(amount : Int) Zwraca krotkę, którą można przekazać do AccountForEstimates operacji, aby określić, że głębokość obrotu jest równa amount.
CczCount(amount : Int) Zwraca krotkę, którą można przekazać do AccountForEstimates operacji, aby określić, że liczba bram CCZ jest równa amount.
PSSPCLayout() Wskazuje układ przetwarzania równoległego syntezy sekwencyjnej Pauli (PSSPC). Aby uzyskać więcej informacji, zobacz arXiv:2211.0769.

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