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 QDKMicrosoft (Quantum Development Kit) incluye simuladores cuánticos que ejecutan programas cuánticos en la máquina local. Utiliza estos simuladores locales para probar y desarrollar tus programas antes de enviarlos a los Azure Quantum destinos.
QDK proporciona cuatro simuladores principales para ejecutar programas cuánticos:
- El simulador disperso
- El simulador del estabilizador
- El GPU simulador
- El CPU simulador
El simulador disperso
El simulador disperso representa estados cuánticos como vectores dispersos y usa álgebra de matriz dispersa para simular rápidamente programas que generan pocas amplitudes no cero. Es el simulador predeterminado para los programas Q# y OpenQASM de la extensión QDK y para las API qsharp.run y openqasm.runPython. Use el simulador disperso cuando desee simulaciones rápidas de Q#, OpenQASMo Qiskit programas, o cuando desee mostrar el estado cuántico del programa durante la simulación.
El simulador disperso está disponible tanto en la QDK extensión para Visual Studio Code (VS Code) como en el QDKPython paquete. Este simulador es el único simulador disponible en la extensión QDK, por lo que la extensión lo usa automáticamente al ejecutar programas OpenQASM y Q# en VS Code. En VS Code, utilice la función Q#DumpMachine o el depurador para mostrar vectores de estado de cúbit en distintos puntos de la simulación.
Tanto la extensión VS Code como el paquete Python admiten modelos de ruido para simulaciones dispersas de programas Q# y OpenQASM. Solo el Python paquete admite la simulación dispersa de Qiskit programas, pero no admite modelos de ruido para Qiskit simulaciones.
Para obtener más información sobre cómo ejecutar simulaciones en la QDK extensión, consulte Ejecución de simulaciones cuánticas en la QDK extensión para Visual Studio Code.
El simulador de estabilizadores
El simulador de estabilizadores simula de forma rápida y eficaz programas dominados por Clifford con miles de cúbits. Las puertas Clifford son componentes habituales de los circuitos de corrección de errores cuánticos. Las operaciones Clifford no aumentan el número de ramas de estabilización, por lo que el simulador puede aplicarlas de forma eficaz incluso en circuitos anchos. Entre las operaciones comunes Clifford se incluyen:
- $X$, $Y$, y $Z$
- $S$ y $S^\dagger$
- $H$, o Hadamard
- $CX$, $CY$, y $CZ$
- $SWAP$
El simulador de estabilizadores también utiliza la ramificación de estabilizadores para simular circuitos con un número limitado de operaciones distintas de Clifford. El simulador admite las siguientes operaciones distintas de Clifford:
- $T$ y $T^\dagger$
- Rotaciones de ángulo arbitrario $R_X$, $R_Y$, $R_Z$, $R_{XX}$, $R_{YY}$ y $R_{ZZ}$
Cada operación distinta de Clifford puede aumentar el número de ramificaciones de estabilizadores. Añadir operaciones distintas de Clifford puede aumentar exponencialmente el uso de memoria y el tiempo de ejecución. Utiliza el simulador de estabilizadores para circuitos amplios con operaciones principalmente de tipo Clifford y un número moderado de operaciones distintas de Clifford. Utiliza un simulador disperso o de estado completo para circuitos que tengan muchas operaciones distintas de Clifford.
El simulador de estabilizadores admite la ejecución adaptable, el ruido Pauli y la pérdida de cúbits. Está disponible en el paquete QDKPython para los programas Q#, OpenQASM, Qiskit y QIR, pero no está disponible en la extensión QDK para VS Code.
En Python las API con un selector de simulador, use "stabilizer" o "clifford" para seleccionar el simulador de estabilizador.
El GPU simulador
El simulador GPU es un simulador de estado completo que utiliza el GPU de tu máquina para ejecutar muchas iteraciones de tu programa cuántico en paralelo. El simulador admite todos los tipos de puerta, pero requiere recursos informáticos significativos. El simulador puede modelar hasta 27 cúbits. La potencia del GPU de tu máquina determina el rendimiento, pero este es óptimo para programas que tengan alrededor de 20 qubits y muchas iteraciones.
El GPU simulador acepta QIR o Qiskit como entrada a través de determinadas QDKPython API de paquete. La VS Code extensión no admite el GPU simulador. También hay un sólido soporte para modelos de ruido en cualquier tipo de puerta cuántica u operación.
El CPU simulador
Al igual que el GPU simulador, el CPU simulador es un simulador de estado completo que ejecuta programas con cualquier tipo de puerta cuántica. Sin embargo, es más lento porque no puede ejecutar múltiples simulaciones en paralelo. Este simulador se escala hasta alrededor de 25 cúbits, pero se ralentiza exponencialmente con más cúbits debido a problemas de memoria. Utilice el CPU simulador cuando la máquina no tenga un GPU, o cuando el programa tenga pocos cúbits y no requiera muchos shots.
El simulador CPU acepta entrada QIR o Qiskit. Puede usarlo a través de determinadas QDKPython API de paquete, pero no a través de la VS Code extensión. También hay un soporte extenso para los modelos de ruido en cualquier tipo de puerta cuántica u operación.
¿Qué simulador debo usar?
Tenga en cuenta estos factores al elegir un simulador:
- Su entorno de desarrollo (VS Code o Python)
- El marco de programación cuántica que usas
- La complejidad de tu programa y el número de ejecuciones
- Las funcionalidades de hardware de la máquina local
- Los objetivos Azure Quantum u otro hardware cuántico en el que desees ejecutar tus programas
- Los modelos de ruido que desea compilar
La siguiente tabla resume la disponibilidad de cada simulador QDK y los marcos de programación cuántica compatibles:
| Simulador | Disponibilidad | Marcos admitidos |
|---|---|---|
| Dispersos | VS Code extensión y Python paquete | Q#, , OpenQASM, Qiskit |
| Stabilizer | Python paquete | Q#, OpenQASM, , Qiskit, QIR |
| GPU | Python paquete | Qiskit, QIR |
| CPU | Python paquete | Qiskit, QIR |
Simulaciones en la QDK extensión para VS Code
La QDK extensión para VS Code solo admite el simulador disperso. Para utilizar el simulador disperso, ejecuta tu archivo Q# u OpenQASM en VS Code. Puedes añadir modelos de ruido Pauli a simulaciones dispersas de programas Q# en VS Code, pero no a programas OpenQASM.
Simulaciones en el QDKPython paquete
El QDKPython paquete admite varios marcos de programación cuántica y los cuatro QDK simuladores. La compatibilidad varía según el marco y la API.
En la tabla siguiente se enumeran los simuladores y marcos de programación que admite cada Python API:
| Python Interfaz de Programación de Aplicaciones (API) | Dispersos | Stabilizer | GPU | CPU | Marco de programación |
|---|---|---|---|---|---|
qsharp.run |
Supported | Supported | No soportado | No soportado | Q# |
openqasm.run |
Supported | Supported | No soportado | No soportado | OpenQASM |
qiskit.QSharpBackend |
Supported | No soportado | No soportado | No soportado | Qiskit |
simulation.NeutralAtomDevice |
No soportado | Supported | Supported | Supported | QIR |
qiskit.NeutralAtomBackend |
No soportado | Supported | Supported | Supported | Qiskit |
simulation.run_qir |
No soportado | Supported | Supported | Supported | QIR |