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żywać 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 szacunki operacji, na przykład z opublikowanego dokumentu, jednym ze sposobów skrócenia czasu wykonywania jest uwzględnienie znanych oszacowań i włączenie ich do ogólnego kosztu programu.

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

  • 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 w dół, czyli rozpocząć opracowywanie z funkcji main, a następnie zaimplementować niższe poziomy. Możesz użyć znanych oszacowań na najwyższym poziomie z oczekiwanymi szacunkami 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 szacunki dla całego programu są znane z góry i bardziej precyzyjne w miarę postępu rozwoju.

Możesz użyć AccountForEstimatesQ# operacji , aby przekazać znane oszacowania do narzędzia do szacowania zasobów.

Uwaga

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

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

open 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 auxilliary 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 amount.
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 równoległej 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

Następne kroki