Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
- La versión más reciente de Visual Studio Code (VS Code)
- La versión más reciente de la extensión QDK instalada en VS Code
- Las versiones más recientes de la Python extensión y la extensión de Jupyter en VS Code
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#
- En VS Code, cree un nuevo archivo de texto y guarde el archivo como
ising-1d-sample.qs. - En la primera línea del archivo, escriba ejemplo para abrir la lista de programas de ejemplo de Q#.
- 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.
Para crear un nuevo archivo Jupyter Notebook en VS Code, abra la paleta de comandos y escriba Crear: Nuevo Jupyter Notebook.
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
Mainobjeto en elqdk.codeespacio de nombres que contiene el programa Q#.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")