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.
QDK(Microsoft Quantum Development Kit) incluye un conjunto de simuladores cuánticos a los que puede acceder desde la Visual Studio Code extensión (VS Code) y el QDKPython paquete. Estos simuladores permiten probar cómo se ejecutan los programas cuánticos en hardware cuántico real. En este artículo se explica cómo instalar los simuladores y cómo ejecutar simulaciones básicas en Jupyter Notebook y VS Code.
Incluye QDK cuatro simuladores cuánticos:
- Simulador disperso
- Simulador de Clifford
- Simulador de GPU
- Simulador de CPU
Para obtener más información sobre los QDK simuladores cuánticos, consulte Introducción a los simuladores cuánticos en QDK.
Prerequisites
Para seguir los pasos de este artículo, debe instalar las siguientes herramientas:
- Un entorno de Python (versión 3.10 o posterior), con Python y Pip
- La versión más reciente de Visual Studio Code (VS Code)
- Las versiones más recientes de la extensión Python y Jupyter en VS Code
Instalación de los simuladores
Los cuatro simuladores están disponibles en el QDKPython paquete, pero solo el simulador disperso está disponible en la QDKVS Code extensión.
Para usar el simulador disperso en la extensión VS Code, instale la extensión QDK para VS Code.
Para usar los simuladores cuánticos en Python y Jupyter Notebook, instale la versión más reciente del qdkPython paquete con el jupyter adicional:
pip install --upgrade "qdk[jupyter]"
El jupyter adicional no es necesario para usar los simuladores, pero instala el qdk.widgets módulo. El módulo widgets permite crear visualizaciones a partir de los resultados de la simulación en Jupyter Notebook.
Ejecución de simulaciones mediante la QDK extensión para VS Code
La QDK extensión para VS Code ofrece solo el simulador disperso. Para ejecutar el programa en el simulador disperso en VS Code, abra un programa Q# (.qs) o OpenQASM (.qasm) en VS Code y ejecute el archivo.
Por ejemplo, siga estos pasos para ejecutar uno de los programas de ejemplo de Q# que vienen con la QDK extensión :
- En VS Code, abra el menú Archivo y seleccione Nuevo archivo de texto.
- Asigne al archivo un nombre que termine con la
.qsextensión . - En el archivo vacío, escriba sample. Se abre una lista de ejemplos de código incluidos.
- Elija un ejemplo de código, por ejemplo ejemplo Bell Pair.
- Para ejecutar el programa en el simulador sparse, seleccione el comando Ejecutar en CodeLens, situado sobre la operación Main.
El VS Code terminal muestra la salida de la simulación.
Note
Puede agregar modelos de ruido limitados a simulaciones dispersas de programas de Q# en la QDK extensión. Para obtener más información, vea Agregar ruido de Pauli al simulador disperso en VS Code.
Ejecución de simulaciones mediante el QDKPython paquete
El QDKPython paquete ofrece los cuatro simuladores. La forma de llamar a los simuladores depende del simulador y del marco de programación cuántica.
Llamada al simulador disperso
Puede usar el simulador disperso con programas de Q#, OpenQASM y Qiskit. En la tabla siguiente se muestra cómo llamar al simulador disperso desde el qdk paquete para 10 tomas en cada marco de programación cuántica compatible.
| Marco de programación | Python API | Llamada de ejemplo |
|---|---|---|
| Q# | qsharp.run |
qsharp.run("MyQsharpProgram()", shots=10) |
| OpenQASM | openqasm.run |
openqasm.run(my_qasm_program, shots=10) |
| Qiskit | qiskit.QSharpBackend |
QSharpBackend().run(my_qiskit_program, shots=10) |
Note
Puede agregar modelos de ruido al simulador disperso con el noise parámetro para programas Q# y OpenQASM, pero no puede agregar modelos de ruido para programas Qiskit.
Por ejemplo, siga estos pasos para ejecutar el programa Q# de par Bell en un Jupyter cuaderno de VS Code:
En VS Code, abra el menú Ver y seleccione Paleta de comandos.
Escriba Crear: Nuevo Jupyter Notebook. Se abre un archivo de cuaderno vacío en una nueva pestaña.
En la primera celda, importe el
qsharpmódulo desde elqdkpaquete.from qdk import qsharpEn una nueva celda, use el
%%qsharpcomando magic para escribir el código Q#.%%qsharp operation Main() : (Result, Result) { use (q1, q2) = (Qubit(), Qubit()); PrepareBellPair(q1, q2); (MResetZ(q1), MResetZ(q2)) } operation PrepareBellPair(q1 : Qubit, q2 : Qubit) : Unit { H(q1); CNOT(q1, q2); }Crear una celda nueva. Para ejecutar el programa Q# en el simulador disperso, llame a la función
rundel móduloqsharpy especifique el número de ejecuciones.qsharp.run("Main()", shots=10)
Llamada al simulador de Clifford
Puede usar el simulador de Clifford para programas Q#, OpenQASM, Qiskit y QIR. En la tabla siguiente se muestra cómo llamar al simulador de Clifford desde el qdk paquete para 10 tomas en cada marco de programación cuántica admitido.
| Marco de programación | Python API | Llamada de ejemplo |
|---|---|---|
| Q# | qsharp.run |
qsharp.run("MyQsharpProgram()", type='clifford', shots=10) |
| OpenQASM | openqasm.run |
openqasm.run(my_qasm_program, type='clifford', shots=10) |
| Qiskit | simulation.NeutralAtomBackend |
simulation.NeutralAtomBackend().run(my_qiskit_program, simulator_type='clifford', shots=10) |
| QIR | simulation.NeutralAtomDevice |
simulation.NeutralAtomDevice().simulate(my_qir, type='clifford', shots=10) |
| QIR | simulation.run_qir |
simulation.run_qir(my_qir, type='clifford', shots=10) |
Note
Las API NeutralAtomDevice y NeutralAtomBackend se utilizan específicamente para simulaciones en ordenadores cuánticos de átomos neutros. Para obtener más información, consulte Descripción general del simulador de dispositivos de átomos neutros.
Por ejemplo, el siguiente código Python crea un programa OpenQASM sencillo y ejecuta el programa en el simulador de Clifford:
from qdk.openqasm import run
qasm_code = """
include "stdgates.inc";
qubit[2] q;
reset q;
h q[0];
cx q[0], q[1];
bit c = measure q[1];
"""
run(qasm_code, type='clifford', shots=10)
Llame a los simuladores de GPU y CPU
Puede invocar los simuladores de GPU y de CPU para programas de Qiskit y QIR. En la tabla siguiente se muestra cómo llamar al simulador de GPU desde el qdk paquete para 10 tomas en cada uno de los marcos de programación cuántica admitidos. Para llamar al simulador de CPU, sustituya 'gpu' por 'cpu' en los parámetros de tipo del simulador.
| Marco de programación | Python API | Llamada de ejemplo |
|---|---|---|
| Qiskit | simulation.NeutralAtomBackend |
simulation.NeutralAtomBackend().run(my_qiskit_program, simulator_type='gpu', shots=10) |
| QIR | simulation.NeutralAtomDevice |
simulation.NeutralAtomDevice().simulate(my_qir, type='gpu', shots=10) |
| QIR | simulation.run_qir |
simulation.run_qir(my_qir, type='gpu', shots=10) |
Por ejemplo, el siguiente código Python convierte un programa OpenQASM simple en QIR y ejecuta qiR en el simulador de GPU:
from qdk.openqasm import compile#, ProgramType
from qdk.simulation import run_qir
qasm_code = """
include "stdgates.inc";
qubit[2] q;
reset q;
h q[0];
cx q[0], q[1];
bit c = measure q[1];
"""
qir = compile(qasm_code)
run_qir(qir, type='gpu', shots=10)