Spécifier les options Executor
Versions des packages
Le code sur cette page a été développé en utilisant les exigences suivantes. Nous recommandons d'utiliser ces versions ou des versions plus récentes.
qiskit-ibm-runtime~=0.46.1
Tu peux utiliser des options pour personnaliser la primitive Executor.
- Tu peux voir les options disponibles et mettre à jour les valeurs des options pendant ou après l'initialisation de la primitive.
- Utilise la méthode
update()pour appliquer des modifications à l'attributoptions. - L'attribut
optionsest le type Pythondataclass. Tu peux utiliser la méthode intégréeasdictpour le convertir en dictionnaire.
Définir les options Executor
Si une option est spécifiée à la fois pendant et après l'initialisation de la primitive, la valeur définie après l'initialisation de la primitive est utilisée.
Initialisation de la primitive
Tu peux passer une instance de la classe d'options ou un dictionnaire lors de l'initialisation d'Executor, qui fait ensuite une copie de ces options. Ainsi, la modification du dictionnaire original ou de l'instance d'options n'affecte pas les options appartenant à la primitive.
Classe d'options
Lors de la création d'une instance de la classe Executor, tu peux passer une instance de la classe d'options. Ces options sont ensuite appliquées lorsque tu utilises run() pour effectuer le calcul. Spécifie les options dans ce format : options.option.sous-option.sous-sous-option = choix. Par exemple : options.environment.log_level = INFO.
Exemple :
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService, Executor
from qiskit_ibm_runtime.options import ExecutorOptions
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
options = ExecutorOptions(
environment={"log_level": "INFO"},
execution={"init_qubits": True},
)
# or use the following instead:
options = ExecutorOptions()
options.environment.log_level = "INFO"
options.execution.init_qubits = True
executor = Executor(mode=backend, options=options)
Dictionnaire
Tu peux spécifier les options sous forme de dictionnaire lors de l'initialisation d'Executor.
from qiskit_ibm_runtime import QiskitRuntimeService, Executor
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Setting options during primitive initialization
executor = Executor(
backend,
options={
"environment": {"log_level": "INFO"},
"execution": {"init_qubits": True},
},
)
Options disponibles
Le tableau suivant documente les options de la dernière version de qiskit-ibm-runtime. Pour voir les versions d'options plus anciennes, consulte la référence API qiskit-ibm-runtime et sélectionne une version précédente.
environment
environment.job_tags
Liste d'étiquettes.
Choix : None
Défaut : None
environment.log_level
Choix : DEBUG, INFO, WARNING, ERROR, CRITICAL
Défaut : WARNING
environment.private
Choix : True, False
Défaut : False
environment.max_execution_time
Choix : Nombre entier de secondes dans la plage [1, 10800]
Défaut : 10800 (3 heures)
execution
execution.init_qubits
Indique s'il faut réinitialiser les qubits à l'état fondamental pour chaque shot.
Choix : True, False
Défaut : True
execution.rep_delay
Le délai entre une mesure et le circuit quantique suivant.
Choix : Valeur dans la plage fournie par backend.rep_delay_range
Défaut : Donné par backend.default_rep_delay
execution.meas_type
Choix : classified, kerneled, avg_kerneled
Défaut : classified
experimental
Options expérimentales, lorsqu'elles sont disponibles.
Compatibilité des fonctionnalités
Certaines fonctionnalités d'exécution ne peuvent pas être utilisées ensemble dans un seul job. Clique sur l'onglet approprié pour obtenir une liste des fonctionnalités incompatibles avec la fonctionnalité sélectionnée :
- Circuits dynamiques
- Découplage dynamique
- Gates fractionnaires
- ZNE par repliement de gate
- Torsion de gate
- PEA
- PEC
Incompatible avec :
- ZNE par repliement de gate
- PEA
- PEC
- Découplage dynamique
Autres notes :
- La torsion de gate peut être appliquée aux circuits dynamiques, mais uniquement aux gates qui ne se trouvent pas dans des blocs conditionnels.
- La torsion de mesure ne peut être appliquée qu'aux mesures terminales.
- La torsion de mesure est incompatible avec l'instruction
store. - Compatible avec les gates fractionnaires lors de l'utilisation de
qiskit-ibm-runtimev0.42.0 ou ultérieur.
Incompatible avec les circuits dynamiques.
Incompatible avec :
- Torsion de gate
- PEA
- PEC
Compatible avec les circuits dynamiques lors de l'utilisation de qiskit-ibm-runtime v0.42.0 ou ultérieur.
Incompatible avec :
- Circuits dynamiques
- PEA
- PEC
Pourrait ne pas fonctionner avec des gates personnalisées.
Incompatible avec les gates fractionnaires ou les étirements.
Autres notes :
- La torsion de gate peut être appliquée aux circuits dynamiques, mais uniquement aux gates qui ne se trouvent pas dans des blocs conditionnels. La torsion de mesure ne peut être appliquée qu'aux mesures terminales.
- Ne fonctionne pas avec des enchevêtreurs non Clifford.
Incompatible avec :
- Circuits dynamiques
- Gates fractionnaires
- ZNE par repliement de gate
- PEC
Incompatible avec :
- Circuits dynamiques
- Gates fractionnaires
- ZNE par repliement de gate
- PEA
Étapes suivantes
- Consulte la documentation API ExecutionOptionsV2.
- Consulte la documentation API EnvironmentOptions.