Qiskit/fr
Qiskit est une bibliothèque de programmation quantique à code source ouvert développée en Python par IBM. Comme PennyLane et Snowflurry, elle permet de construire, simuler et exécuter des circuits quantiques.
Installation¶
-
Chargez les dépendances de Qiskit.
-
Créez et activez un environnement virtuel Python.
-
Installez une version spécifique de Qiskit.
oùX.Y.Zreprésente le numéro de la version, par exemple1.4.0. Pour installer la plus récente version disponible sur nos grappes, n'indiquez pas de version. Ici, nous n'avons importé queqiskitetqiskit_aer. Vous pouvez ajouter d'autres logiciels Qiskit en fonction de vos besoins en suivant la structureqiskit_package==X.Y.Zoùqiskit_packagereprésente le logiciel voulu, par exempleqiskit-finance. Les wheels présentement disponibles sont listés sur la page Wheels Python. -
Validez l’installation de Qiskit.
-
Gelez l'environnement et les dépendances.
Exécuter Qiskit sur une grappe¶
script.sh
Vous pouvez ensuite soumettre votre tâche à l'ordonnanceur.
#!/bin/bash
#SBATCH --account=def-someuser #indiquez le nom de votre compte
#SBATCH --time=00:15:00 #modifiez s'il y a lieu
#SBATCH --cpus-per-task=1 #modifiez s'il y a lieu
#SBATCH --mem-per-cpu=1G #modifiez s'il y a lieu
# Chargez les dépendances des modules.
module load StdEnv/2023 gcc python/3.11 symengine/0.11.2
# Générez l'environnement virtuel dans $SLURM_TMPDIR.
virtualenv --no-download ${SLURM_TMPDIR}/env
source ${SLURM_TMPDIR}/env/bin/activate
# Installez Qiskit et ses dépendances.
pip install --no-index --upgrade pip
pip install --no-index --requirement ~/qiskit_requirements.txt
# Modifiez le programme Qiskit.
python qiskit_example.py
Utiliser Qiskit avec MonarQ¶
Il est possible d’utiliser directement MonarQ avec Qiskit via le plugiciel qiskit-calculquebec. Ce plugiciel permet de développer et d'exécuter des circuits Qiskit sur l’infrastructure de Calcul Québec.
Installation des dépendances¶
- Étape 1 : Installer les dépendances
Note
qiskit-calculquebec installe automatiquement Qiskit.
Initialisation du backend MonarQ¶
- Étape 2 : Configurer vos identifiants et le backend
- Créez un client avec vos identifiants. Votre jeton est disponible via le portail Thunderhead.
- Le host est https://monarq.calculquebec.ca.
- Initialisez ensuite le backend MonarQ.
qiskit_example.py
import qiskit
from qiskit import QuantumCircuit
from qiskit_calculquebec.API.client import CalculQuebecClient
from qiskit_calculquebec.backends import MonarQBackend
# Identifiants
user = "username"
access_token = "token"
host = "https://monarq.calculquebec.ca"
project_id = "project_id"
# Création du client et du backend
my_client = CalculQuebecClient(host, user, access_token, project_id=project_id)
backend = MonarQBackend("monarq", my_client)
# Circuit simple
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
Exécution du circuit¶
- Étape 3 : Transpiler et exécuter le circuit
qiskit_example.py
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
# Transpilation adaptée au backend
pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
transpiled_qc = pm.run(qc)
# Exécution
sampler = Sampler(mode=backend)
job = sampler.run([transpiled_qc], shots=1000)
result = job.result()
print(result[0].data.meas.get_counts())
Notes¶
- La transpilation est nécessaire pour adapter le circuit à la connectivité et aux portes natives de MonarQ.
- Le nombre de shots peut être ajusté selon les besoins (maximum : 1024).
- L’utilisation de SamplerV2 est recommandée pour l’exécution de circuits avec mesures.