Hoe u de Microsoft Quantum-resource-estimator installeert en gebruikt

De Microsoft Quantum-resource-estimator maakt deel uit van de Microsoft Quantum Development-kit (QDK). In dit artikel leert u hoe u de kwantumresource-estimator installeert en een schatting uitvoert voor een eenvoudig Q#-programma met een standaardarchitectuurmodel.

Warning

De resource-estimator in de QDK-extensie voor VS Code wordt binnenkort afgeschaft. Gebruik de qdk.qrePython module om een schatting van resources uit te voeren.

Prerequisites

Als u de stappen in dit artikel wilt volgen, moet het volgende zijn geïnstalleerd:

De kwantumresource-estimator installeren

De resource-estimator is beschikbaar via de qdk.qrePython module. Als u de resource-estimator wilt gebruiken, installeert u de nieuwste versie van het qdkPython pakket met de qre extra:

pip install --upgrade "qdk[qre]"

Tip

U hoeft geen Azure account te hebben om de resource-estimator te gebruiken.

Een eenvoudige schatting van resources uitvoeren met standaardinstellingen

Als u een eenvoudige resourceraming wilt uitvoeren, geeft u een toepassingsmodel, een hardwarearchitectuurmodel en een foutcorrectiemodel door aan de resource-estimator. Voer vervolgens de resource-estimator uit om de resultaten op te halen. In het volgende voorbeeld wordt de resource-estimator uitgevoerd vanuit Jupyter Notebook in VS Code.

Een toepassingsmodel maken

Voor dit voorbeeld gebruikt u het 1D Ising-modelalgoritmen uit de Q#-voorbeelden in de QDK VS Code-extensie. Of gebruik een van uw bestaande Q#-programma's.

Een Q#-programma schrijven

  1. Maak in VS Code een nieuw tekstbestand en sla het bestand op als ising-1d-sample.qs.
  2. Voer op de eerste regel van het bestand een voorbeeld in om de lijst met Q#-voorbeeldprogramma's weer te geven.
  3. Kies het voorbeeld Ising Model (Simple 1D) en sla het bestand vervolgens op.

Een app maken

Gebruik het Q#-programma om een toepassingsmodel te maken voor de resource-estimator.

  1. Als u een nieuw Jupyter Notebook-bestand wilt maken in VS Code, opent u het opdrachtenpalet en voert u Create: New Jupyter Notebook in.

  2. Evalueer in de eerste notebookcel het Q#-programma.

    from pathlib import Path
    from qdk import qsharp
    
    qsharp.eval(Path("ising-1d-sample.qs").read_text(encoding="utf-8"))
    

    Met deze code wordt een Main object gemaakt in de qdk.code naamruimte die het Q#-programma bevat.

  3. Maak in een nieuwe cel een resource-estimator-toepassing op basis van het Q#-programma.

    import qdk
    from qdk.qre.application import QSharpApplication
    
    app = QSharpApplication(qdk.code.Main)
    

Een architectuurmodel maken

Gebruik voor de hardwarearchitectuur het standaardmodel GateBased waarmee de resource-estimator wordt geleverd. Het GateBased model vereist invoer voor foutfrequentie, poorttijd en meettijd.

Maak in een nieuwe cel een architectuur op basis van een poort met een foutpercentage van $10^{-4}$, een poorttijd van 100 ns en een meettijd van 500 ns.

from qdk.qre.models import GateBased

# Times are in units of nanoseconds
arch = GateBased(error_rate=1e-4, gate_time=100, measurement_time=500)

Een schatting uitvoeren

Als u een schatting wilt uitvoeren, gebruikt u de estimate functie en geeft u de volgende invoer door:

  • Application
  • Architecture
  • Opvraag van fysieke instructieset (ISA)
  • Maximum aantal fouten

De ISA-query vertelt de resource-estimator welke combinaties van foutcodes en T factory-distillatieprotocollen moeten worden geëvalueerd. De resource-estimator vindt in die combinaties de voor de Pareto-grens geoptimaliseerde resultatenset. Gebruik voor dit voorbeeld het standaardprotocol voor SurfaceCode QEC en RoundBasedFactory distillatie dat bij de resource-estimator wordt meegeleverd.

from qdk.qre import estimate
from qdk.qre.models import SurfaceCode, RoundBasedFactory

results = estimate(app, arch, isa_query=SurfaceCode.q() * RoundBasedFactory.q(), max_error=0.01)```

De resultaten weergeven

Als u de optimale combinaties van het aantal fysieke qubits en de uitvoeringstijd van het programma wilt weergeven, gebruikt u de as_frame methode om de schattingsresultaten weer te geven in een Pandas DataFrame.

results.as_frame()

Om de resultaten te plotten, gebruikt u de methode plot_estimates en geeft u een eenheid voor de uitvoeringstijd op.

from qdk.qre import plot_estimates

plot_estimates(results, figsize=(6, 4), runtime_unit="ms")