Qiskit: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 5: Line 5:


== Installation de Qiskit ==
== Installation de Qiskit ==
<!--
1. Téléchargez et renommez le wheel de SymEngine.
1. Téléchargez et renommez le wheel de SymEngine.
{{Command|wget https://files.pythonhosted.org/packages/3b/50/0f6635c91c20322f9f79d0061421b4bca2b5175d2158d19e2c4f1a669ce8/symengine-0.11.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl -O symengine-0.11.0-cp311-cp311-linux_x86_64.whl}}
{{Command|wget https://files.pythonhosted.org/packages/3b/50/0f6635c91c20322f9f79d0061421b4bca2b5175d2158d19e2c4f1a669ce8/symengine-0.11.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl -O symengine-0.11.0-cp311-cp311-linux_x86_64.whl}}
Line 22: Line 21:
|prompt=(ENV) [name@server ~]
|prompt=(ENV) [name@server ~]
|pip install --no-index --upgrade pip
|pip install --no-index --upgrade pip
|pip install --no-index symengine-0.11.0-cp311-cp311-linux_x86_64.whl qiskit{{=}}{{=}}X.Y.Z}}
|pip install --no-index symengine-0.11.0-cp311-cp311-linux_x86_64.whl qiskit{{=}}{{=}}X.Y.Z  qiskit_aer{{=}}{{=}}X.Y.Z}}
où <code>X.Y.Z</code> représente le numéro de la version, par exemple <code>1.1.0</code>. Pour installer la plus récente version disponible pour nos grappes, n'indiquez pas de version.
où <code>X.Y.Z</code> représente le numéro de la version, par exemple <code>1.1.0</code>. Pour installer la plus récente version disponible pour nos grappes, n'indiquez pas de version. Ici, nous n'avons importé que <code>qiskit</code> et <code>qiskit_aer</code>. Vous pouvez ajouter d'autres logiciels qiskit en fonction de vos besoins en suivant la structure <code>qiskit_package==X.Y.Z</code> où <code>qiskit_package</code> représente le logiciel voulu, par exemple <code>qiskit-finance</code>. Les wheels présentement disponibles sont sur la page [[Available Python wheels/fr|Wheels Python]].  


6. Validez l’installation de Qiskit.
6. Validez l’installation de Qiskit.
{{Command|prompt=(ENV) [name@server ~] python -c "import qiskit"}}
{{Command|prompt=(ENV)[name@server ~]|python -c 'import qiskit'}}


7. Gelez l'environnement et les dépendances.
7. Gelez l'environnement et les dépendances.
{{Command
{{Command|prompt=(ENV)[name@server ~]|pip freeze ~/qiskit_requirements.txt}}
|prompt=(ENV) [name@server ~] pip freeze > ~/qiskit_requirements.txt}}
 
-->
== Utiliser Qiskit avec MonarQ ==
== Utiliser Qiskit avec MonarQ ==
<!-- Il est possible d'importer un projet Qiskit dans PennyLane afin de l'exécuter sur MonarQ.  
<!-- Il est possible d'importer un projet Qiskit dans PennyLane afin de l'exécuter sur MonarQ.  
Line 46: Line 44:
-->
-->
== Exemple d'utilisation: États de Bell ==
== Exemple d'utilisation: États de Bell ==
Nous allons créer le premier état de Bell avec Qiskit. Il faut d'abord importer les modules nécessaires.
    from qiskit_aer import Aer
    from qiskit import QuantumCircuit, transpile
    from qiskit.visualization import plot_histogram
Ensuite, nous définissons le circuit. Nous appliquons une porte Hadamard afin de créer un état de superposition sur le premier qubit et nous appliquons ensuite une porte CNOT pour intriquer le premier et le deuxième qubit.
    circuit = QuantumCircuit(2,2)
    circuit.h(0)
    circuit.cx(0,1)
    circuit.measure([0,1],[0,1])
Nous précisons le simulateur que nous voulons utiliser puis nous transpilons le circuit. Nous obtenons le dénombrement des états finaux des qubits après avoir faits des mesures répétées.
    simulator = Aer.get_backend('qasm_simulator')
    compiled_circuit = transpile(circuit, simulator)
    job = simulator.run(compiled_circuit)
    result = job.result()
    counts = result.get_counts()
    print("counts: ", counts)
Nous affichons un histogramme des résultats.
    plot_histogram(counts)

Revision as of 16:48, 14 June 2024


This article is a draft

This is not a complete article: This is a draft, a work in progress that is intended to be published into an article, which may or may not be ready for inclusion in the main wiki. It should not necessarily be considered factual or authoritative.



Other languages:

Qiskit

Qiskit est une bibliothèque de programmation quantique à code source ouvert développée en Python par IBM. Comme les bibliothèques PennyLane ou Snowflurry, elle permet de construire, simuler et exécuter des circuits quantiques. La documentation de Qiskit est disponible en ligne.

Installation de Qiskit

1. Téléchargez et renommez le wheel de SymEngine.

Question.png
[name@server ~]$ wget https://files.pythonhosted.org/packages/3b/50/0f6635c91c20322f9f79d0061421b4bca2b5175d2158d19e2c4f1a669ce8/symengine-0.11.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl -O symengine-0.11.0-cp311-cp311-linux_x86_64.whl

2. Définissez le chemin de la bibliothèque SymEngine.

Question.png
[name@server ~]$ setrpaths.sh --path symengine-0.11.0-cp311-cp311-linux_x86_64.whl

3. Chargez les dépendances de Qiskit.

Question.png
[name@server ~]$ module load StdEnv/2023 gcc python/3.11 scipy-stack

4. Créez et activez un environnement virtuel Python.

Question.png
[name@server ~]$ virtualenv --no-download --clear ~/ENV && source ~/ENV/bin/activate

5. Installez une version spécifique de Qiskit et ses dépendances Python.

(ENV) [name@server ~] pip install --no-index --upgrade pip
(ENV) [name@server ~] pip install --no-index symengine-0.11.0-cp311-cp311-linux_x86_64.whl qiskit==X.Y.Z  qiskit_aer==X.Y.Z

X.Y.Z représente le numéro de la version, par exemple 1.1.0. Pour installer la plus récente version disponible pour nos grappes, n'indiquez pas de version. Ici, nous n'avons importé que qiskit et qiskit_aer. Vous pouvez ajouter d'autres logiciels qiskit en fonction de vos besoins en suivant la structure qiskit_package==X.Y.Zqiskit_package représente le logiciel voulu, par exemple qiskit-finance. Les wheels présentement disponibles sont sur la page Wheels Python.

6. Validez l’installation de Qiskit.

Question.png
(ENV)[name@server ~] python -c 'import qiskit'

7. Gelez l'environnement et les dépendances.

Question.png
(ENV)[name@server ~] pip freeze ~/qiskit_requirements.txt

Utiliser Qiskit avec MonarQ

Exemple d'utilisation: États de Bell

Nous allons créer le premier état de Bell avec Qiskit. Il faut d'abord importer les modules nécessaires.

   from qiskit_aer import Aer
   from qiskit import QuantumCircuit, transpile
   from qiskit.visualization import plot_histogram

Ensuite, nous définissons le circuit. Nous appliquons une porte Hadamard afin de créer un état de superposition sur le premier qubit et nous appliquons ensuite une porte CNOT pour intriquer le premier et le deuxième qubit.

   circuit = QuantumCircuit(2,2)
   circuit.h(0)
   circuit.cx(0,1)
   circuit.measure([0,1],[0,1])

Nous précisons le simulateur que nous voulons utiliser puis nous transpilons le circuit. Nous obtenons le dénombrement des états finaux des qubits après avoir faits des mesures répétées.

   simulator = Aer.get_backend('qasm_simulator')
   compiled_circuit = transpile(circuit, simulator)
   job = simulator.run(compiled_circuit)
   result = job.result()
   counts = result.get_counts()
   print("counts: ", counts)

Nous affichons un histogramme des résultats.

   plot_histogram(counts)