Aller au contenu principal

Migrer de Qiskit Pulse vers les portes fractionnaires

Avec l'introduction des portes fractionnaires, le contrôle au niveau des impulsions sur tous les processeurs IBM Quantum® a été déprécié et sera supprimé début 2025. De plus, le module qiskit.pulse a été déprécié à partir de Qiskit SDK v1.3.0 et sera supprimé dans Qiskit SDK v2.0.0. Ce changement est motivé par notre engagement continu envers les expériences à l'échelle utilitaire et le soutien aux utilisateurs explorant des applications susceptibles de mener à un avantage quantique.

Exécuter directement des rotations sur un ou deux qubits avec les portes fractionnaires

Le cas d'utilisation le plus courant du contrôle au niveau des impulsions consistait à construire des plannings d'impulsions personnalisés qui modifient les impulsions ECR ou RX pour exécuter directement des rotations sur un ou deux qubits. Le processus typique était d'utiliser RXCalibrationBuilder et RZXCalibrationBuilder (ou RZXCalibrationBuilderNoEcho) et d'ajouter une instruction RXGate ou RZXGate à la target d'un QPU, puis de construire un pipeline de transpilation contenant des passes de calibration pour calibrer les rotations sur un ou deux qubits pour un angle spécifié. En arrière-plan, cela créait une calibration, c'est-à-dire une correspondance entre un ScheduleBlock et une porte dans un QuantumCircuit.

Tu peux maintenant accomplir cela sur les processeurs Heron grâce au nouveau drapeau use_fractional_gates. Comme indiqué dans le guide des portes fractionnaires, RX(θ)R_X(\theta) et RZZ(θ)R_ZZ(\theta) doivent tous deux être chargés avec ce drapeau, qui retourne un backend dont l'attribut Target contient des informations sur ces portes.

service = QiskitRuntimeService()
backend = service.backend('ibm_torino', use_fractional_gates=True)

Utiliser Qiskit Dynamics

Le module qiskit.pulse contenait bien plus de fonctionnalités que la simple exécution de rotations sur un ou deux qubits de manière plus efficace. Une grande partie du contrôle sur la physique des appareils peut être modélisée à l'aide du package Qiskit Dynamics disponible dans l'écosystème Qiskit. Ce package propose notamment sa propre représentation analogue de nombreuses fonctionnalités offertes par qiskit.pulse, sous la forme d'un module qiskit_dynamics.signals. La documentation de ce package contient quelques tutoriels qui peuvent être utiles :