Référence de l'API Orbit de Quantum Elements
Qiskit Functions — des outils prêts à l'emploi créés par des organisations partenaires — permettent d'abstraire certaines étapes du processus de développement logiciel afin de simplifier et d'accélérer la découverte d'algorithmes et le développement d'applications à grande échelle. Cliquez ici pour consulter le guide relatif à cette fonction Qiskit.
Guide « Orbit » de Quantum Elements
« Quantum Elements Orbit » est une fonction Qiskit qui prépare des circuits quantiques pour un backend « IBM Quantum® » sélectionné, insère un découplage dynamique (DD) dans les fenêtres d'inactivité programmées et exécute la charge de travail résultante via une primitive « IBM Quantum ». Orbit accepte les PUB de type « Sampler » et « Estimator » et renvoie un format standard PrimitiveResult accompagné de métadonnées spécifiques à Orbit, associées au résultat de niveau supérieur ainsi qu’à chaque résultat de type « PUB » (bloc unifié primitif).
Si backend_name est omis, Orbit sélectionne le backend « IBM Quantum » le moins sollicité et éligible, disponible pour le service de calcul « IBM Quantum ». Si options est omis ou si None, Orbit utilise ses paramètres par défaut intégrés : il transcompile et planifie les circuits, insère la stratégie DD par défaut, soumet le tout au service et joint les métadonnées d'insertion DD au résultat.
Entrées
Un appel type consiste à envoyer des PUB, à sélectionner une primitive, à choisir éventuellement un backend et à transmettre, le cas échéant, des options spécifiques à Orbit :
job = orbit.run(
primitive="sampler",
pubs=[pub, pub, pub],
backend_name="ibm_boston",
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True,
},
]
},
)
result = job.result()pubs fournit les circuits et les données d'entrée de base nécessaires à son fonctionnement. primitive sélectionne le contrat de type « primitive » de l' IBM Quantum. backend_name sélectionne le backend « IBM Quantum »; cette option peut être omise pour laisser Orbit choisir le backend le moins sollicité. options permet de contrôler l'insertion de données de développement (DD) dans Orbit, les options de calcul quantique, le comportement de l'aperçu et du simulateur, ainsi que les fonctionnalités liées aux métadonnées. Vous trouverez ci-dessous toutes les informations détaillées concernant chaque entrée.
pubs
Type: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]
Un ou plusieurs PUB correspondant à la primitive sélectionnée.
- Obligatoire : oui
- Types d'entrée valides : itérable d'objets de type « Sampler » PUB ou itérable d'objets de type « Estimator » PUB
Chaque « PUB » doit correspondre au contrat d'entrée de la primitive sélectionnée.
- Pour
primitive="sampler": chaque PUB suit la forme PUB Sampler, par exemple(circuit, parameter_values, shots). - Pour
primitive="estimator": chaque PUB suit la forme PUB de l'estimateur, par exemple(circuit, observables, parameter_values, precision). - Les circuits ne doivent pas nécessairement être des circuits ISA dans le chemin par défaut
options.transpilation_mode="optimize"; Orbit se charge de leur transcompilation et de leur planification en interne.
primitive
Type: str
Permet de sélectionner la primitive « IBM Quantum » qu’Orbit utilise pour l’exécution.
- Obligatoire : oui
- Types de données valides :
str
La primitive définit ce que chaque « PUB » doit contenir et quelles données de résultat chacune PubResult renvoie.
- Choix :
"sampler"/"estimator" - À utiliser
"sampler"pour les données de type « bitstring » échantillonnées. - Utilisez
"estimator"pour les valeurs attendues et les erreurs-types.
backend_name
Type: str or None
Valeur par défaut: None
Nom du backend « IBM Quantum » sur lequel l'application doit s'exécuter.
-
Obligatoire : Non
-
Valeur par défaut :
None -
Types d'entrée valides :
strouNone -
En cas d'omission ou de
None, Orbit sélectionne un backend opérationnel éligible (autre qu'un simulateur) à l'aide deleast_busy(). -
Exemple:
"ibm_boston"
options
Type: dict or None
Valeur par défaut: None
Options spécifiques à chaque fonction permettant de contrôler le comportement d'exécution d'Orbit.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides :
dictouNone
Les options permettent de contrôler la transpilation, l'insertion de DD, les options de calcul quantique, le mode aperçu, le mode simulateur, l'exportation des informations du backend et l'atténuation des erreurs de mesure.
- Les touches d'option inconnues sont rejetées.
- Indiquez
None,{}, ou ne rien indiqueroptionspour utiliser toutes les valeurs par défaut. - Exemple :
{
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True
}
]
}Liste des options
preview
Type: bool
Valeur par défaut: False
Orbit renvoie-t-il un rapport d'insertion DD sans soumettre de tâche de calcul quantique?
-
Obligatoire : Non
-
Valeur par défaut :
False -
Types de données valides :
bool -
TrueDans ce cas, aucun temps de QPU n'est utilisé; Orbit se contente de prétraiter les circuits danspubset fournit un rapport d'insertion. -
Lorsque
False(valeur par défaut), une tâche de calcul quantique comportant des circuits modifiés par Orbit est soumise et traitée. -
TrueSi etsimulatorsont touspreviewdeux, le mode aperçu prévaut et l'exécution du simulateur est ignorée.
debug_return_circuits
Type: bool
Valeur par défaut: False
Le mode aperçu inclut-il le circuit post-Orbit préparé pour chaque PUB dans les métadonnées?
-
Obligatoire : Non
-
Valeur par défaut :
False -
Types de données valides :
bool -
À n'utiliser que lorsque
preview=True. -
debugCircuit.circuit``TrueChaque rapport « PUB » comprend le nombre de,debugCircuit.usedQubits, et d'opérations. Cela inclut également une approche « au mieux »debugCircuit.qasmlorsque Qiskit est en mesure d'exporter le circuit. -
Laissez cette option désactivée pour les exécutions normales, car les charges utiles des circuits peuvent être volumineuses.
transpilation_mode
Type: string
Valeur par défaut: optimize
Comment Orbit prépare les circuits d' PUB s avant l'insertion des DD.
-
Obligatoire : Non
-
Valeur par défaut :
"optimize" -
Valeurs d'entrée valides :
"optimize","prepare", ou"validate" -
"optimize"effectue plusieurs fois la transpilation avec Qiskitoptimization_level=2et retient la solution présentant la profondeur en deux qubits la plus faible pour les circuits statiques et dynamiques. -
"prepare"gère la préparation de Qiskitoptimization_level=0et la planification d'ALAP. Siphysical_layoutest fourni, Orbit matérialise d'abord le circuit sur ces indices de fils physiques et utilise la méthode de disposition « trivial » de Qiskit. -
"validate"considère que le circuit d'entrée est déjà physiquement mis en place. Orbit vérifie la compatibilité du backend lorsque cela est possible, n'effectue ni remappage, ni routage, ni optimisation, ni correction de la planification avant l'insertion du DD, et ignorephysical_layoutl'opération en affichant un avertissement.
physical_layout
Type: object or null
Valeur par défaut: None
Mappage optionnel des qubits logiques vers les qubits physiques.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides : objet dont les clés et les valeurs sont des entiers non négatifs, ou
None
Exemple : {"0": 85, "1": 89} associe le qubit logique 0 au qubit physique 85 et le qubit logique 1 au qubit physique 89. Python Les appelants peuvent utiliser des clés de type entier; les clés des objets JSON sont des chaînes de caractères.
- En
"optimize"mode, cette valeur est transmise comme point de départ de la disposition initiale et le mappage final peut évoluer au cours de l'optimisation/du routage. - En
"prepare"mode, Orbit matérialise le circuit sur ces indices de fils physiques, puis utilise la préparation « level-0 » aveclayout_method="trivial". Les SWAP à routage explicite peuvent tout de même déplacer un état quantique pendant l'exécution. - En
"validate"mode, les fils du circuit fournis font autorité; par conséquent,physical_layoutest ignoré et un avertissement s'affiche.
num_transpilation_steps
Type: int
Valeur par défaut: 300
Nombre de tentatives de transpilation stochastique « Orbit » en transpilation_mode="optimize".
- Obligatoire : Non
- Valeur par défaut :
300 - Types d'entrée valides : entier positif
mem
Type: bool or None
Valeur par défaut: None
Si Orbit utilise la technique de réduction des erreurs de mesure « Sampler-only » via l' M3.
-
Obligatoire : Non
-
Valeur par défaut :
None -
Types d'entrée valides :
boolouNone -
Lorsque
True, applique une atténuation des erreurs de mesure aux prises de vue provenant desampler. -
Lorsque
False, il n'effectue pas de post-traitement des prises de vue. -
NoneLorsque le mode « Orbit » est activé, la fonction MEM s'applique aux PUB du Sampler en cours d'exécution; en modes « raw » et « custom », la fonction MEM n'est pas prise en compte, sauf configuration contraire. -
« Explicit
True» nécessiteprimitive="sampler",preview=False, etsimulator=False. -
Les nombres bruts d'échantillons sont conservés et les nombres corrigés sont associés aux métadonnées d'Orbit.
-
Si la correction échoue lors du post-traitement, Orbit conserve le résultat brut et consigne l'échec de la correction dans les métadonnées.
pub_options
Type: list[dict] or None
Valeur par défaut: None
Modes d'exécution et règles de remplacement par « per- PUB ».
-
Obligatoire : Non
-
Valeur par défaut :
None -
Types d'entrée valides :
list[dict]ouNone -
Une entrée est diffusée vers tous les PUB; sinon, transmettre une entrée par PUB.
-
{"mode": "raw"}utilise un seul passage de transpilation et de planification Qiskitoptimization_level=0pour les circuits statiques ou dynamiques, et ignore l'optimisation Orbit, Orbit DD, DD dynamique et MEM. -
{"mode": "orbit"}utilise les paramètres par défaut d'Orbit. -
{"mode": "custom"}peut remplacertranspilation_mode,physical_layout,dd_qubits,dd_strategy,dynamic_dd_seq, etmempour cette PUB e. -
Le mode « Raw » utilise
transpilation_mode="prepare"toujours avecphysical_layout=None, ignore Orbit DD et ne tient pas compte des options de préparation globales. -
Les PUB « Orbit » et personnalisés héritent des paramètres globaux
transpilation_modeetphysical_layoutà moins qu'ils ne les redéfinissent viaPUB. -
Utilisez des PUB dupliqués avec
pub_optionspour comparer les données brutes, les paramètres par défaut d'Orbit et une stratégie DD personnalisée au sein d'une même tâche Quantum Compute. Pour une référence CPMG « naïve », utilisez{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}dans le fichier. PUB personnalisédd_strategy.
Pour les circuits préparés par l'appelant, utilisez transpilation_mode="validate" pour les PUB compatibles Orbit :
options = {
"pub_options": [
{"mode": "raw"},
{"mode": "orbit", "transpilation_mode": "validate"},
{
"mode": "custom",
"transpilation_mode": "validate",
"dd_qubits": None,
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"mem": False,
},
]
}dd_strategy
Type: list[list[dict]]
Stratégies DD classées par ordre d'application aux circuits d' PUB.
-
Obligatoire : Non
-
Valeur par défaut :
[[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]] -
Types de données valides :
list[list[dict]] -
Choix : liste externe non vide de listes de stratégies non vides.
-
La liste externe répertorie les PUB ou les circuits. Si une seule stratégie est fournie, Orbit la diffuse à tous les PUB.
-
Chaque liste interne est appliquée, itération après itération, au même circuit.
-
Chaque tour nécessite
dd_sequence;pulse_densityla valeur par défaut est0.25;dd_repsla valeur par défaut est1.
dd_strategy champs ronds
Type: str or dict or list
- Champ :
dd_sequenceSéquence à insérer pour un cycle DD. - Obligatoire : oui
- Types d'entrée valides :
str,dict, ou groupe d'impulsions personnalisélist - Options :
"auto", un nom de séquence intégré, un dictionnaire de variantes tel que{"name": "ur", "variant": "8"}, ou une liste personnalisée de groupes d'impulsions telle que[[0.0], ["Y"], ["Xb", 0.5]]. - Noms prédéfinis, classés par créneaux d'impulsion : les séquences à deux créneaux sont
"CPMG","pureY", et"superHahn"; les séquences à quatre créneaux sont"XY4"et"superCPMG"; les séquences à huit créneaux sont"XY8"; les séquences à seize créneaux sont"superEuler"; les séquences à vingt créneaux sont"KDD". - Familles intégrées paramétrées :
"CDD-n"avec un entiern >= 1("CDD-1"ce qui équivaut à"XY4"et la suite croît de manière récursive);"UR-n"ou"URn"avec un entier pairn >= 4(par exemple,"UR-8"ou"URn8"); et"T-n"ou"Tn"avec un entier pairn >= 2(par exemple,"T-8"ou"Tn8"). - Variantes intégrées RGA :
"RGA-2x","RGA-4","RGA-4p","RGA-8a""RGA-8c","RGA-16a","RGA-16b",,"RGA-32a","RGA-32c","RGA-64a","RGA-64c", et"RGA-256a". - Les noms de séquences intégrés ne tiennent pas compte de la casse et ignorent les séparateurs tels que les tirets et les traits de soulignement. Par exemple,
"RGA-8a"et"rga8a"sont équivalents, tout comme"UR-n-8"et"UR8". - Les valeurs numériques personnalisées correspondent à des phases exprimées en unités de pi pour des rotations de pi dans le plan xy.
0.0est égal à +X et0.5est égal à +Y. - Les alias de chaînes personnalisés comprennent
"X","Y","Xb", et"Yb".
Type: float
- Champ :
pulse_densityFraction de chaque intervalle d'inactivité disponible pour les impulsions DD de ce cycle. - Obligatoire : Non
- Valeur par défaut :
0.25 - Types d'entrée valides :
floatouint - Options : Déplacer de
0.0à1.0 0.0laisse des espaces non comblés pour ce tour.1.0envoie les impulsions aussi densément que le permet la synchronisation de la séquence.
Type: int
Valeur par défaut: 1
- Champ :
dd_repsNombre de répétitions de la séquence DD de ce tour au sein de chaque intervalle d'inactivité admissible. - Obligatoire : Non
- Valeur par défaut :
1 - Types de données valides :
int - Options : nombre entier >= 1
dynamic_dd_seq
Type: str or dict or list or None
Valeur par défaut: XY8
Séquence DD utilisée pour l'insertion DD à anticipation de circuit dynamique d'Orbit.
-
Obligatoire : Non
-
Valeur par défaut :
"XY8" -
listTypes d'entrée valides :str,dict, groupe d'impulsions personnalisé, ouNone -
Options : Utilisez les mêmes formes de séquence que
dd_strategy[].dd_sequence, ouNonepour désactiver l'étage d'insertion dynamique en avance. -
S'applique lorsque Orbit détecte une logique conditionnelle ou un flux de contrôle et utilise le pipeline DD à circuit dynamique.
-
Le passage normal
dd_strategyest d'abord exécuté, puis Orbit applique cette séquence aux régions dynamiques de pré-alimentation étiquetées.
dd_qubits
Type: list[int] or None
Valeur par défaut: None
Liste blanche globale des indices de qubits éligibles à l'insertion dans Orbit DD.
-
Obligatoire : Non
-
Valeur par défaut :
None -
Types d'entrée valides :
list[int]ouNone -
Options :
Noneou une liste d'entiers >= 0 -
Nonene cible que les qubits actifs ou touchés. -
Une liste peut inclure des qubits « idle-only » et exclut les qubits qui n'y figurent pas.
-
pub_options[i].dd_qubitsIl est possible de remplacer cette valeur dansorbitles entrées oucustomPUB. -
Les listes d'autorisation explicites ne peuvent être fournies que pour les PUB compatibles Orbit dont l'adresse résolue
transpilation_modeest"validate", de sorte que l'appelant détienne les indices des qubits physiques.dd_qubitsLes PUB « bruts » ignorent Orbit DD et n'acceptent pas les fichiers.
save_backend_info
Type: bool
Valeur par défaut: False
Orbit enregistre-t-il les propriétés d'étalonnage du backend après l'exécution d'une tâche de calcul quantique?
-
Obligatoire : Non
-
Valeur par défaut :
False -
Types de données valides :
bool -
Choix :
True/False -
Lorsqu'elle est activée, Orbit interroge
service.job(job_id).properties(), enregistre les propriétés sérialisées du backend sous/data, et indique le chemin d'accès de l'enregistrement dans les métadonnées d'Orbit. -
Les échecs sont signalés sous forme d'avertissements et n'entraînent pas l'annulation des résultats des primitives qui ont par ailleurs abouti.
default_shots
Type: int
Valeur par défaut: 4096
Images par défaut utilisées pour les PUB Sampler qui ne précisent pas explicitement les images.
-
Obligatoire : Non
-
Valeur par défaut :
4096 -
Types de données valides :
int -
Options : nombre entier > 0
-
S'applique uniquement à
primitive="sampler".
default_precision
Type: float
Valeur par défaut: 0.015625
Précision cible par défaut utilisée pour les PUB de l'estimateur qui ne précisent pas explicitement la précision.
-
Obligatoire : Non
-
Valeur par défaut :
0.015625 -
Types d'entrée valides :
floatouint -
Options : Flottant > 0
-
S'applique uniquement à
primitive="estimator".
runtime_options
Type: dict
IBM Quantum options primitives transmises à la primitive sous-jacente SamplerV2 ou EstimatorV2.
-
Obligatoire : Non
-
Valeur par défaut :
{"resilience_level": 0, "dynamical_decoupling": {"enable": false}} -
Types de données valides :
dict -
Les dictionnaires d'options imbriqués sont pris en charge, y compris les options avancées et expérimentales pour la primitive sélectionnée.
-
Le découplage dynamique à l'exécution est désactivé par défaut; par conséquent, l'insertion DD d'Orbit est la seule étape de découplage dynamique, sauf si l'utilisateur choisit de l'activer.
Par exemple, les utilisateurs expérimentés de Sampler peuvent activer les champs de débogage des circuits dynamiques :
options = {
"runtime_options": {
"experimental": {
"execution": {
"scheduler_timing": True,
"stretch_values": True,
}
}
}
}- Avertissement : il convient donc de modifier cette valeur avec précaution, en activant manuellement certaines fonctionnalités telles que le « twirling » tout en continuant à exclure le DD.
resilience_level
Type: int or None
Valeur par défaut: 0
Niveau de résilience de l'estimateur en exécution.
-
Obligatoire : Non
-
Valeur par défaut :
0 -
Types d'entrée valides :
intouNone -
Choix :
0/1/2/None -
S'applique à
primitive="estimator". -
Utilisez
Nonepour ne pas définir l'option « Runtime ». -
primitive="sampler"Si cette option est activée, Orbit l'ignore et ajoute un avertissement aux métadonnées d'Orbit.
dynamical_decoupling
Type: dict
Options de découplage dynamique transmises à Quantum Compute.
- Obligatoire : Non
- Valeur par défaut :
{"enable": false} - Types de données valides :
dict
enable
Type: bool
Valeur par défaut: False
Faut-il activer le DD qiskit-ibm-runtime en plus de l'insertion Orbit DD?
-
Obligatoire : Non
-
Valeur par défaut :
False -
Types de données valides :
bool -
Choix :
True/False -
Lorsqu'elle est activée, Orbit affiche un avertissement, car l'utilisation simultanée de Runtime DD et d'Orbit DD peut entraîner un comportement inattendu.
sequence_type
Type: str or None
Valeur par défaut: None
Type de séquence DD d'exécution facultatif.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides :
strouNone
Transmis à Quantum Compute dès qu'il est disponible.
scheduling_method
Type: str or None
Valeur par défaut: None
Méthode facultative de planification DD à l'exécution.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides :
strouNone
Transmis à Quantum Compute dès qu'il est disponible.
extra_slack_distribution
Type: str or None
Valeur par défaut: None
Distribution « extra-slack » optionnelle de Runtime DD.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides :
strouNone
Transmis à Quantum Compute dès qu'il est disponible.
skip_reset_qubits
Type: bool or None
Valeur par défaut: None
Paramètre DD facultatif de l'environnement d'exécution permettant de déterminer si les qubits de réinitialisation doivent être ignorés.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides :
boolouNone
Transmis à Quantum Compute dès qu'il est disponible.
max_execution_time
Type: int or None
Valeur par défaut: None
Limite souple de la durée maximale d'exécution d'une tâche Quantum Compute.
- Obligatoire : Non
- Valeur par défaut :
None - Types d'entrée valides :
intouNone
La valeur est indiquée en secondes.
- Options :
Noneou un nombre entier > 0 NoneDans ce cas, la valeur par défaut de Runtime est utilisée.
simulator
Type: bool
Valeur par défaut: False
Si Orbit exécute la charge de travail sur un simulateur Aer local plutôt que sur un QPU réel.
- Obligatoire : Non
- Valeur par défaut :
False - Types de données valides :
bool
Le simulateur s'exécute au sein du conteneur de fonctions.
- Choix :
True/False - Ignoré lorsque
previewest égal àTrue. - Un objet « normal »
PrimitiveResultest renvoyé, accompagné des métadonnées d'Orbit.
simulator_noise
Type: str
Valeur par défaut: backend
Modèle de bruit utilisé lorsque simulator est égal à True.
-
Obligatoire : Non
-
Valeur par défaut :
"backend" -
Types de données valides :
str -
Choix :
"backend"/"ideal" -
"backend"utiliseAerSimulator.from_backend(backend), dans la mesure du possible. -
AerSimulator``"ideal"utilise un fichier simple et sans bruit.
gate_dur
Type: int or None
Valeur par défaut: None
Durée d'une porte ou d'une impulsion DD.
-
Obligatoire : Non
-
Valeur par défaut :
None -
Types d'entrée valides :
intouNone -
Avertissement : n'utilisez une valeur explicite que dans le cadre de tests contrôlés ou lorsque vous avez une raison précise liée au backend et justifiée.
-
Cette valeur utilise les mêmes unités que celles utilisées par le backend pour les délais, généralement
dt. -
Options :
Noneou un nombre entier > 0 -
Lorsque
NoneOrbit résout une valeur tenant compte du backend à partir debackend.targeten utilisant la durée de porte X calibrée la plus longue ou la durée de porte sqrt(X).
Sorties
La fonction renvoie un objet Qiskit PrimitiveResult contenant un élément PubResult par entrée PUB. Orbit conserve les données de résultat des normales de la primitive sélectionnée et ajoute les métadonnées Orbit sous quantum_elements_orbit.
Type: PrimitiveResult
Standard, PrimitiveResult avec métadonnées Orbit associées.
primitive="sampler"En effet, chacun d'entre euxPubResult.datacontient des données de résultats d'échantillonnage, telles que des tableaux de bits de registre classique.primitive="estimator"En effet, chacun d'entre euxPubResult.datacontient des données de résultats d'estimation, telles que les valeurs attendues et les erreurs-types.- En mode aperçu, chaque champ est
PubResult.datavide car aucune primitive « IBM Quantum » n'a été soumise.
Métadonnées de premier niveau
metadata["quantum_elements_orbit"]
Type: dict[str, Any]
Rapport « Aggregated Orbit » pour l'appel de fonction complet.
functionVersion
Type: str
Version principale d'Orbit ayant généré le résultat.
preview
Type: bool
Si le résultat a été généré en mode aperçu.
simulator
Type: bool
Si le mode simulateur a été demandé.
simulatorNoise
Type: str
Mode de bruit du simulateur : "backend" ou "ideal".
primitive
Type: str
Primitive sélectionnée : "sampler" ou "estimator".
ddStrategy
Type: list[list[dict]]
Stratégie DD normalisée utilisée pour la simulation.
pubOptions
Type: list[dict[str, Any]]
Problèmes résolus concernant les modes d'exécution et les remplacements par « PUB ». Chaque entrée comprend l'index « PUB », la valeur modale, la valeur résolue transpilationMode, physicalLayout, mem, orbitEnabled ddQubits, dynamicDdSeq,, et, le cas échéant, la valeur résolue par « PUB ddStrategy».
dynamicDdSeq
Type: str or dict or list or None
Séquence DD à anticipation et circuit dynamique utilisée pour la course.
ddQubits
Type: list[int] or None
Liste blanche globale par défaut des qubits DD utilisée pour l'exécution. Les rapports « Per- PUB » comprennent la liste blanche définitive pour chaque PUB.
runtimeOptions
Type: dict[str, Any]
Options d'exécution qu'Orbit a tenté d'appliquer, notamment resilienceLevel et dynamicalDecoupling.
transpilationMode
Type: string
Mode de préparation globale des circuits demandé pour les PUB compatibles avec Orbit.
physicalLayout
Type: dict or None
Mappage global entre la disposition logique et la disposition physique requis pour les PUB compatibles avec Orbit.
numTranspilationSteps
Type: int
Nombre de graines de transpilation stochastique configurées pour une transpilation optimisée.
backendInfo
Type: dict[str, Any]
État de l'exportation de l'étalonnage du backend. Comprend enabled, saved, et, le cas échéant, le nom du backend, l'ID de la tâche, le chemin d'enregistrement et les avertissements.
warnings
Type: list[str]
Avertissements liés à l'exécution, tels que le mode « Preview » qui remplace le mode simulateur, l'activation simultanée de Runtime DD et d'Orbit DD, ou encore le fait que Sampler ignore resilience_level.
pubs
Type: list[dict[str, Any]]
Un rapport d'insertion en orbite par « PUB » d'entrée.
metadata["resource_usage"]
Type: dict[str, dict[str, float]]
Utilisation des ressources par phase, avec des entrées correspondant à l'optimisation matérielle, à l'attente du QPU, à l'exécution sur le QPU et au post-traitement.
- Les phases comprennent
RUNNING: OPTIMIZING_FOR_HARDWARE,RUNNING: WAITING_FOR_QPU,RUNNING: EXECUTING_QPU, etRUNNING: POST_PROCESSING. RUNNING: EXECUTING_QPUcomprendQPU_TIME.
Métadonnées d'orbite par PUB
Chacun PubResult.metadata["quantum_elements_orbit"] contient le rapport d'insertion correspondant à cette PUB e.
pubIndex
Type: int
Indice de l'« PUB » dans la charge de travail soumise.
mode
Type: str
Mode d'exécution défini par « per- PUB » : "raw", "orbit", ou "custom".
orbitEnabled
Type: bool
Si l'insertion d'Orbit DD était activée pour l' PUB
transpilationMode
Type: string
Mode de préparation du circuit défini pour cette PUB.
physicalLayout
Type: dict or None
La mise en correspondance entre la disposition logique et la disposition physique a été établie pour cette PUB. En validate mode, cette valeur est ignorée et un avertissement s'affiche.
mem
Type: bool or None
Problème résolu concernant le paramètre d'atténuation des erreurs de mesure pour ce modèle « PUB ».
dynamicDdSeq
Type: str or dict or list or None
Séquence DD à action directe et circuit dynamique résolue pour cette PUB.
ddQubits
Type: list[int] or None
Liste blanche définitive des qubits DD pour cette PUB.
status
Type: str
Statut d'insertion du DD pour cet PUB, indiquant notamment si le DD a été appliqué ou ignoré.
numRounds
Type: int
Nombre de cycles de stratégie DD appliqués à l' PUB e.
warnings
Type: list[str]
PUB - avertissements liés à l'insertion de DD et à la gestion de la compatibilité.
insertionSummary
Type: dict[str, Any]
Résumé général des insertions DD pour cette PUB. Comprend l'état, le nombre d'espaces vides initiaux et comblés, le nombre de séquences DD ajoutées, le nombre de portes ajoutées, la durée des portes, la profondeur et la taille du circuit avant et après l'insertion, ainsi que les avertissements liés à l'insertion.
perRoundSummaries
Type: list[dict[str, Any]]
Résumés de l'insertion des données de développement (DD) par itération. Chaque entrée comprend l'index du cycle, la séquence, la densité d'impulsions, le nombre de répétitions, le nombre d'intervalles, le nombre de portes ajoutées, la durée des portes, la profondeur et la taille du circuit avant et après ce cycle, ainsi que les avertissements.
measurementErrorMitigation
Type: dict[str, Any]
Présent lorsque la fonction MEM est activée pour au moins une « PUB ». Indique si la mesure de protection « M3 » a été appliquée, partiellement appliquée, ignorée ou a échoué. Les entrées « par PUB » conservent les comptes non atténués et incluent les comptes atténués lorsque l'atténuation aboutit.
DD insère des impulsions réelles et des sous-retards dans les fenêtres d'inactivité prévues, ce qui entraîne généralement une augmentation de la profondeur et de la taille du circuit indiquées. L'insertion préserve la durée prévue de la fenêtre d'inactivité; elle ne cherche pas à préserver la profondeur de la porte.
Aperçu du résultat
Lorsque est options.preview égal à True, Orbit renvoie un objet contenant uniquement des métadonnées PrimitiveResult. Aucune tâche de calcul quantique n'est soumise, aucun compteur d'échantillonneur ni aucune valeur d'estimateur ne sont renseignés, et le temps de QPU est indiqué comme 0.0. Utilisez le mode aperçu pour vérifier les rapports d'insertion DD avant de les exécuter sur le matériel.
Résultats du simulateur
Lorsque options.simulator est True et que options.preview est False, Orbit exécute la charge de travail post-DD à l'aide d'un simulateur Aer local au sein du conteneur de fonction. Le résultat reste un enregistrement simulator=True Orbit normal PrimitiveResult; ainsi que le mode sélectionné simulatorNoise dans les métadonnées de premier niveau.
Résultats de l'atténuation des erreurs de mesure
Lorsque la fonctionnalité MEM est activée pour au moins une « PUB », Orbit ajoute measurementErrorMitigation des métadonnées. Lorsque MEM aboutit, la méthode du get_counts() registre Sampler renvoie l'histogramme corrigé par MEM. Les chiffres relatifs au temps d'exécution sans correction restent disponibles sous la forme measurementErrorMitigation["rawCounts"].
Parmi les mesures d'atténuation efficaces par « per- PUB », on peut citer :
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
Pour les circuits dynamiques, Orbit applique la méthode MEM à la chaîne de bits de sortie renvoyée dans le cadre du post-traitement de l'histogramme. Orbit ne détermine pas si chaque bit provient d’une mesure en bout de ligne ou d’une mesure en cours de circuit, et il ne modifie ni rétroactivement ni en temps réel les branchements conditionnels qui ont utilisé des résultats de mesure non corrigés. Ce traitement convient aux chaînes de bits destinées à servir de sorties de circuit, mais les utilisateurs ne doivent pas l'interpréter comme une correction du flux de contrôle dynamique qui a généré ces sorties.
Si la mesure d'atténuation échoue, Orbit conserve le résultat brut et enregistre le statut d'échec ainsi que le message d'erreur dans les métadonnées.
Traitement des erreurs
Orbit génère des erreurs structurées qiskit_serverless.ServerlessError en cas d'échecs irrémédiables. codeChaque erreur comprend une charge utile, message, et details . Orbit associe les erreurs aux catégories de codes d'erreur existantes d' IBM Quantum, dans la mesure du possible; les erreurs de validation utilisent le code 1221. Les erreurs spécifiques à l'orbite utilisent la plage 4700 de codes réservée à QE jusqu'à 4709 lorsqu'aucun code existant de l' IBM Quantum ne correspond mieux. Consultez le guide de référence des codes d'erreur de l' IBM Quantum pour obtenir des informations générales sur les codes d'erreur.
Vérifiez d'abord les champs details « erreur » et message « ». Ils identifient le champ invalide, le problème au niveau du backend, de l'index « PUB » ou la défaillance en amont de Quantum Compute lorsque Orbit est en mesure de le déterminer.
- Les erreurs de validation des données saisies utilisent le code
1221.dd_strategy``pubsIl s'agit notamment de types d'options non valides, de clés d'options inconnues, de valeurs vides, de valeurs non valides, de longueurs non validespub_options,dd_qubitsde valeurs résoluestranspilation_modedifférentes de"validate", de circuits préparés par l'appelant qui ne sont pas compatibles avec la cible backend sélectionnée, de valeurs nonphysical_layoutvalides, ainsi que de requêtes MEM incompatibles telles quemem=True``primitive="estimator",preview=True, ousimulator=True. - Les erreurs liées à des primitives non prises en charge utilisent le code
1211. Orbit n'accepte queprimitive="sampler"etprimitive="estimator". - Les erreurs liées à la sélection du backend ou aux capacités du backend utilisent le code
1007ou1009. Il s'agit notamment de noms de backends indisponibles, de l'absence de backend éligible le moins sollicité, ou d'un backend ne disposant pas des informations de synchronisation requises pour l'insertion DD. - Les échecs d'insertion DD et d'aller-retour QASM utilisent le code
1003. Ces erreurs peuvent se produire lorsqu'un circuit ne peut pas être transpilé, planifié, converti ou complété de manière cohérente pour le backend et la stratégie DD sélectionnés. - Les échecs de soumission sur Quantum Compute sont identifiés par le code
1245; les tâches qui échouent avant de produire un résultat sont identifiées par le code5203. Orbit conserve le code d'erreur de Quantum Compute en amont lorsqu'un tel code est généré, avec le code de repli d'Orbit dansdetails. - Les défaillances imprévues spécifiques à l'orbite sont signalées sous forme d'erreurs structurées dans la plage réservée QE (
4700--4709) lorsqu'aucun code d'erreur existant de l' IBM Quantum ne s'applique.
Les conditions non fatales sont signalées sous forme d'avertissements plutôt que d'entraîner l'échec de la tâche lorsque Orbit peut conserver le résultat en toute sécurité. Les avertissements au niveau de l'exécution apparaissent dans metadata["quantum_elements_orbit"]["warnings"]; PUB - les avertissements au niveau de l'exécution apparaissent dans chaque rapport PUB. Les événements d'avertissement récupérables utilisent le code 1300 lorsque l'environnement Qiskit Functions accepte les événements d'avertissement. On peut citer comme exemples le fait que prenne preview=True le pas sur simulator=True, l'activation simultanée de DD qiskit-ibm-runtime et d'Orbit DD, le fait que Sampler ignore runtime_options.resilience_level, ou encore l'échec de l'exportation de l'étalonnage du backend alors que le résultat de la primitive est par ailleurs disponible.
Les défaillances liées à l'atténuation des erreurs de mesure ne sont pas non plus critiques. Si la gestion des erreurs « M3 » ne peut pas être appliquée, Orbit conserve le résultat brut du Sampler et enregistre measurementErrorMitigation.status="failed" un message d'erreur dans les métadonnées d'Orbit.