Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le Microsoft Quantum Development Kit (QDK) inclut un ensemble de simulateurs quantiques auxquels vous pouvez accéder à partir de l’extension Visual Studio Code (VS Code) et du QDKPython package. Ces simulateurs vous permettent de tester la façon dont vos programmes quantiques s’exécutent sur du matériel quantique réel. Cet article explique comment installer les simulateurs et comment exécuter des simulations de base dans Jupyter Notebook et VS Code.
Il QDK comprend quatre simulateurs quantiques :
- Simulateur de parcimonie
- Simulateur Clifford
- Simulateur GPU
- Simulateur de CPU
Pour plus d’informations sur les QDK simulateurs quantiques, consultez Vue d’ensemble des simulateurs quantiques dans le QDK.
Prerequisites
Pour suivre les étapes décrites dans cet article, vous devez installer les outils suivants :
- Un environnement Python (version 3.10 ou ultérieure), avec Python et Pip
- La dernière version de Visual Studio Code (VS Code)
- Les dernières versions de l’extension Python et Jupyter dans VS Code
Installer les simulateurs
Les quatre simulateurs sont disponibles dans le QDKpackage, mais seul le simulateur partiellement alloué est disponible dans l’extensionQDKVS Code.Python
Pour utiliser le simulateur sparse dans l’extension VS Code, installez l’extension QDK pour VS Code.
Pour utiliser les simulateurs quantiques dans Python et Jupyter Notebookinstaller la dernière version duPythonqdkpackage avec les jupyter éléments supplémentaires :
pip install --upgrade "qdk[jupyter]"
L’extra jupyter n’est pas nécessaire pour utiliser les simulateurs, mais installe le qdk.widgets module. Le module widgets vous permet de créer des visualisations à partir de vos résultats de simulation dans Jupyter Notebook.
Exécuter des simulations à l’aide de l’extension QDK pour VS Code
L’extension QDK pour VS Code n’offre que le simulateur sparse. Pour exécuter votre programme sur le simulateur sparse dans VS Code, ouvrez un programme Q# (.qs) ou OpenQASM (.qasm) dans VS Code et exécutez le fichier.
Par exemple, suivez ces étapes pour exécuter l’un des exemples de programmes Q# fournis avec l’extension QDK :
- Dans VS Code, ouvrez le menu Fichier et sélectionnez Nouveau fichier texte.
- Donnez au fichier un nom qui se termine par l’extension
.qs. - Dans le fichier vide, entrez l’exemple. Une liste d’exemples de code inclus s’ouvre.
- Choisissez un exemple de code, par exemple Bell Pair sample.
- Pour exécuter le programme sur le simulateur sparse, sélectionnez la commande Exécuter dans la lentille de code au-dessus de l’opération Main.
Le VS Code terminal affiche la sortie de la simulation.
Note
Vous pouvez ajouter des modèles de bruit limités aux simulations éparses des programmes Q# dans l’extension QDK . Pour plus d’informations, consultez Ajouter du bruit de Pauli au simulateur creux dans VS Code.
Exécuter des simulations à l’aide du QDKPython package
Le QDKPython package offre les quatre simulateurs. L’appel des simulateurs dépend du simulateur et de l’infrastructure de programmation quantique.
Appeler le simulateur partiellement alloué
Vous pouvez utiliser le simulateur sparse pour les programmes Q#, OpenQASM et Qiskit. Le tableau suivant montre comment appeler le simulateur partiellement alloué à partir du qdk package pour 10 captures dans chaque infrastructure de programmation quantique prise en charge.
| Framework de programmation | Python API | Exemple d’appel |
|---|---|---|
| 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
Vous pouvez ajouter des modèles de bruit au simulateur sparse à l’aide du paramètre noise pour les programmes Q# et OpenQASM, mais vous ne pouvez pas ajouter de modèles de bruit pour les programmes Qiskit.
Par exemple, suivez ces étapes pour exécuter le programme Q# de paire Bell dans un Jupyter bloc-notes dans VS Code:
Dans VS Code, ouvrez le menu Affichage et sélectionnez Palette de commandes.
Entrez Créer : Nouveau Jupyter Notebook. Un fichier de notebook vide s’ouvre dans un nouvel onglet.
Dans la première cellule, importez le
qsharpmodule à partir duqdkpackage.from qdk import qsharpDans une nouvelle cellule, utilisez la
%%qsharpcommande magique pour écrire le code 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); }Créez une cellule. Pour exécuter le programme Q# sur le simulateur creux, appelez la fonction
rundu moduleqsharpet spécifiez le nombre d’exécutions.qsharp.run("Main()", shots=10)
Appeler le simulateur Clifford
Vous pouvez appeler le simulateur Clifford pour les programmes Q#, OpenQASM, Qiskit et QIR. Le tableau suivant montre comment appeler le simulateur Clifford à partir du qdk package pour 10 captures dans chaque infrastructure de programmation quantique prise en charge.
| Framework de programmation | Python API | Exemple d’appel |
|---|---|---|
| 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
Les API NeutralAtomDevice et NeutralAtomBackend sont spécifiquement destinées aux simulations sur des ordinateurs quantiques à atomes neutres. Pour plus d’informations, consultez vue d’ensemble du simulateur d’appareil atom neutre.
Par exemple, le code Python suivant crée un programme OpenQASM simple et exécute le programme sur le simulateur 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)
Appeler les simulateurs GPU et CPU
Vous pouvez utiliser les simulateurs GPU et CPU pour les programmes Qiskit et QIR. Le tableau suivant montre comment appeler le simulateur GPU à partir du qdk package pour 10 captures dans chacune des infrastructures de programmation quantique prises en charge. Pour appeler le simulateur de processeur, remplacez 'gpu' par 'cpu' dans les paramètres de type du simulateur.
| Framework de programmation | Python API | Exemple d’appel |
|---|---|---|
| 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) |
Par exemple, le code Python suivant convertit un programme OpenQASM simple en QIR et exécute le QIR sur le simulateur 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)