Instalación y uso del estimador de recursos de Microsoft Quantum

El estimador de recursos de Microsoft Quantum forma parte del Microsoft Quantum Development Kit (QDK). En este artículo, aprenderá a instalar el estimador de recursos cuánticos y a ejecutar una estimación de un programa de Q# simple con un modelo de arquitectura predeterminado.

Warning

El estimador de recursos de la extensión QDK para VS Code quedará en desuso pronto. Use el módulo para realizar la qdk.qrePython estimación de recursos.

Prerequisites

Para seguir los pasos de este artículo, debe tener instalado lo siguiente:

Instalación del estimador de recursos cuánticos

El estimador de recursos está disponible a través del qdk.qrePython módulo . Para usar el estimador de recursos, instale la versión más reciente del qdkPython paquete con el qre adicional:

pip install --upgrade "qdk[qre]"

Tip

No es necesario tener una cuenta de Azure para usar el estimador de recursos.

Ejecución de una estimación de recursos simple con la configuración predeterminada

Para realizar una estimación básica de recursos, pase un modelo de aplicación, un modelo de arquitectura de hardware y un modelo de corrección de errores al estimador de recursos. A continuación, ejecute el estimador de recursos para obtener los resultados. En el ejemplo siguiente se ejecuta el estimador de recursos de Jupyter Notebook en VS Code.

Creación de un modelo de aplicación

En este ejemplo, use el algoritmo del modelo de 1D Ising de los ejemplos de Q# en la extensión VS Code de QDK. O bien, usar uno de los programas Q# existentes.

Escribir un programa en Q#

  1. En VS Code, cree un nuevo archivo de texto y guarde el archivo como ising-1d-sample.qs.
  2. En la primera línea del archivo, escriba ejemplo para abrir la lista de programas de ejemplo de Q#.
  3. Seleccione ejemplo del modelo de Ising (1D simple) y, a continuación, guarde el archivo.

Creación de una aplicación

Use el programa Q# para crear un modelo de aplicación para el estimador de recursos.

  1. Para crear un nuevo archivo Jupyter Notebook en VS Code, abra la paleta de comandos y escriba Crear: Nuevo Jupyter Notebook.

  2. En la primera celda del cuaderno, evalúe el programa Q#.

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

    Este código crea un Main objeto en el qdk.code espacio de nombres que contiene el programa Q#.

  3. En una nueva celda, cree una aplicación de estimador de recursos desde el programa Q#.

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

Creación de un modelo de arquitectura

Para la arquitectura de hardware, use el modelo predeterminado GateBased con el que viene el estimador de recursos. El modelo GateBased requiere como entrada la tasa de error, el tiempo de compuerta y el tiempo de medición.

En una nueva celda, cree una arquitectura basada en puertas con una tasa de error de $10^{-4}$, un tiempo de puerta de 100 ns y un tiempo de medición de 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)

Ejecución de una estimación

Para ejecutar una estimación, use la estimate función y pase las siguientes entradas:

  • Application
  • Architecture
  • Consulta del conjunto físico de instrucciones (ISA)
  • Tasa máxima de errores

La consulta de ISA le indica al estimador de recursos qué combinaciones de código de corrección de errores y protocolos de destilación de fábrica T debe evaluar. El estimador de recursos encuentra el conjunto optimizado para fronteras de Pareto de resultados de esas combinaciones. Para este ejemplo, use la QEC predeterminada SurfaceCode y el protocolo de destilación RoundBasedFactory que incluye el estimador de recursos.

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)```

Ver los resultados

Para ver las combinaciones óptimas del número de cúbits físicos y el tiempo de ejecución del programa, use el as_frame método para mostrar los resultados de la estimación en un DataFrame pandas.

results.as_frame()

Para representar los resultados, use el método plot_estimates y especifique una unidad para el tiempo de ejecución.

from qdk.qre import plot_estimates

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