Comprendre les données de résultat de l’estimateur de ressources

Découvrez comment interpréter et récupérer les paramètres de sortie et les diagrammes de l’estimateur de ressources. Cet article explique comment accéder par programmation aux résultats de l’estimateur de ressources dans Jupyter Notebooks. Si vous exécutez l’estimateur de ressources dans Visual Studio Code à partir de la palette de commandes, les commandes suivantes ne s’appliquent pas.

Prérequis

Paramètres de sortie

Les données de sortie de l’estimateur de ressources sont un rapport imprimé dans la console et accessible par programmation. Par exemple, l’extrait de code suivant montre comment accéder aux paramètres d’estimation des ressources.

result['job_params']

Les données de sortie suivantes constituent les entrées possibles qui peuvent être accessibles par programmation.

Paramètre de sortie de niveau supérieur Type de données Description
status string Status du travail, il s’agit toujours Succeededde .
job_params dictionnaire Paramètres target du travail passés en tant qu’entrée.
physical_counts dictionnaire Estimations des ressources physiques. Pour plus d’informations, consultez Nombres physiques.
physical_counts_formatted dictionnaire Estimations des ressources physiques mises en forme pour l’affichage dans les données de rapport. Pour plus d’informations, consultez Nombres physiques mis en forme.
logical_qubit dictionnaire Propriétés qubit logiques. Pour plus d’informations, consultez Qubit logique.
tfactory dictionnaire Propriétés de la fabrique T.
logical_counts dictionnaire Estimations des ressources logiques de pré-disposition. Pour plus d’informations, consultez Nombres logiques.
report_data dictionnaire Données de génération pour le rapport d’estimation des ressources.

Nombres physiques

Le physical_counts dictionnaire contient les entrées suivantes :

Paramètre de sortie Type de données Description
physical_qubits nombre Nombre total de qubits physiques.
runtime nombre Runtime total pour exécuter l’algorithme en nanosecondes.
rqops nombre Nombre d’opérations quantiques fiables par seconde (QOPS).
breakdown dictionnaire Répartition des estimations. Pour plus d’informations, consultez Répartition des nombres physiques.

Répartition des nombres physiques

Le breakdown dictionnaire de physical_counts contient les entrées suivantes :

Paramètre de sortie Type de données Description
algorithmic_logical_qubits nombre Les qubits logiques requis pour l’exécution de l’algorithme et n’incluent pas de ressources pour les fabriques T.
algorithmic_logical_depth nombre Les cycles logiques nécessaires à l’exécution de l’algorithme et n’incluent pas de ressources pour les fabriques T.
logical_depth nombre Nombre éventuellement ajusté de cycles qui est calculé chaque fois que le temps d’exécution de la fabrique T est plus rapide que l’exécution de l’algorithme.
num_tstates nombre Nombre d’états T consommés par l’algorithme.
clock_frequency nombre Nombre de cycles logiques par seconde.
num_tfactories nombre Nombre d’usines T (en supposant que la conception de l’usine T uniforme).
num_tfactory_runs nombre Nombre de fois où toutes les usines T parallèles doivent s’exécuter.
physical_qubits_for_tfactories nombre Nombre de qubits physiques pour toutes les fabriques T.
physical_qubits_for_algorithm nombre Nombre de qubits physiques pour la disposition de l’algorithme.
required_logical_qubit_error_rate nombre Taux d’erreur logique requis.
required_logical_tstate_error_rate nombre Taux d’erreur d’état T logique requis.
num_ts_per_rotation nombre Nombre de portes T par rotation.
clifford_error_rate nombre Taux d’erreur clifford basé sur les paramètres qubit.

Nombres physiques mis en forme

Le physical_counts_formatted dictionnaire contient les entrées suivantes :

Paramètre de sortie Type de données Description
runtime string Total runtime en tant que chaîne conviviale.
rqops string Nombre d’opérations quantiques fiables par seconde (QOPS) mises en forme avec le suffixe de métrique.
physical_qubits string Nombre total de qubits physiques avec suffixe de métrique.
algorithmic_logical_qubits string Qubits logiques algorithmiques avec suffixe de métrique.
algorithmic_logical_depth string Profondeur logique algorithmique avec suffixe de métrique.
logical_depth string Profondeur logique algorithmique éventuellement ajustée avec suffixe de métrique.
num_tstates string Nombre d’états T avec suffixe de métrique.
num_tfactories string Nombre de copies de fabrique T avec suffixe de métrique.
num_tfactory_runs string Nombre d’exécutions de fabrique T avec le suffixe de métrique.
physical_qubits_for_algorithm string Nombre de qubits physiques pour l’algorithme avec suffixe de métrique.
physical_qubits_for_tfactories string Nombre de qubits physiques pour les fabriques T avec suffixe de métrique.
physical_qubits_for_tfactories_percentage string Nombre de qubits physiques pour toutes les fabriques T en pourcentage au total.
required_logical_qubit_error_rate string Taux d’erreur qubit logique requis tronqué.
required_logical_tstate_error_rate string Taux d’erreur d’état T requis tronqué.
physical_qubits_per_logical_qubit string Nombre de qubits physiques par qubit logique avec suffixe de métrique.
logical_cycle_time string Durée du cycle logique d’un qubit logique en tant que chaîne conviviale.
clock_frequency string Nombre de cycles logiques par seconde sous forme de chaîne conviviale.
logical_error_rate string Taux d’erreur logique tronqué.
tfactory_physical_qubits string Nombre de qubits physiques dans la fabrique T avec suffixe de métrique (ou message indiquant qu’il n’existe pas de fabrique T).
tfactory_runtime string Runtime d’une fabrique T unique en tant que chaîne conviviale (ou message indiquant qu’il n’existe pas de fabrique T).
num_input_tstates string Nombre d’états T d’entrée (ou message indiquant qu’il n’existe pas de fabrique T).
num_units_per_round string Nombre d’unités par cycle de distillation, virgules séparées dans une chaîne (ou message indiquant qu’il n’y a pas d’usine T).
unit_name_per_round string Noms d’unités de chaque cycle de distillation, virgules séparées dans une chaîne (ou message indiquant qu’il n’y a pas d’usine T).
code_distance_per_round string Distances de code par cycle de distillation, virgules séparées dans une chaîne (ou message indiquant qu’il n’y a pas de fabrique T).
physical_qubits_per_round string Nombre de qubits physiques par cycle de distillation, virgules séparées dans une chaîne (ou message indiquant qu’il n’y a pas de T factory).
tfactory_runtime_per_round string Runtime de chaque cycle de distillation, affiché sous forme de chaînes conviviales séparées par des virgules (ou message indiquant qu’il n’existe pas de fabrique T).
tstate_logical_error_rate string Taux d’erreur d’état T logique tronqué (ou message indiquant qu’il n’existe pas de fabrique T).
logical_counts_num_qubits string Nombre de qubits (pré-disposition) avec suffixe de métrique.
logical_counts_t_count string Nombre de portes T (pré-disposition) avec suffixe de métrique.
logical_counts_rotation_count string Nombre de portes de rotation (pré-disposition) avec suffixe de métrique.
logical_counts_rotation_depth string Profondeur de rotation (pré-disposition) avec suffixe de métrique.
logical_counts_ccz_count string Nombre de portes CCZ (pré-disposition) avec suffixe de métrique.
logical_counts_ccix_count string Nombre de portes CCiX (pré-disposition) avec suffixe de métrique.
logical_counts_measurement_count string Nombre de mesures à qubit unique (pré-disposition) avec suffixe de métrique.
error_budget string Budget d’erreur total tronqué.
error_budget_logical string Budget d’erreur tronqué pour l’erreur logique.
error_budget_tstates string Budget d’erreur tronqué pour une distillation d’état T défectueuse.
error_budget_rotations string Budget d’erreur tronqué pour une synthèse de rotation défectueuse.
num_ts_per_rotation string Nombre de Ts mis en forme par rotation (peut être Aucun).

Qubit logique

Le logical_qubit dictionnaire contient les entrées suivantes :

Paramètre de sortie Type de données Description
code_distance nombre Distance de code calculée pour le qubit logique.
physical_qubits nombre Nombre de qubits physiques pour chaque qubit logique.
logical_cycle_time nombre Heure d’exécution d’une opération logique.
logical_error_rate nombre Taux d’erreur logique du qubit logique.

Nombres logiques

Le logical_counts dictionnaire contient les entrées suivantes :

Paramètre de sortie Type de données Description
num_qubits nombre Nombre de qubits de pré-disposition.
t_count nombre Numéro de pré-disposition des portes T.
rotation_count nombre Nombre de portes de rotation de pré-disposition.
rotation_depth nombre Profondeur de rotation de pré-disposition.
ccz_count nombre Numéro de pré-disposition des portes CCZ.
ccix_count nombre Numéro de pré-disposition des portes CCiX.
measurement_count nombre Nombre de mesures à un seul qubit avant la disposition.

Diagramme d’espace

L’estimation globale des ressources physiques se compose du nombre total de qubits physiques utilisés pour l’algorithme et les copies de fabrique T. Vous pouvez inspecter la distribution entre ces deux à l’aide du diagramme d’espace.

Le diagramme d’espace montre la proportion des qubits physiques utilisés pour l’algorithme et les fabriques T. Notez que le nombre de copies de fabrique T contribue au nombre de qubits physiques pour les fabriques T.

Dans Jupyter Notebook, vous pouvez accéder au diagramme d’espace à l’aide du SpaceChart widget à partir du qsharp-widgets package.

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

Diagramme en secteurs montrant la distribution des qubits physiques totaux entre les qubits d’algorithme et les qubits de fabrique T. Il existe un tableau avec la répartition du nombre de copies de la fabrique T et du nombre de qubits physiques par fabrique T.

Lors de l’exécution de plusieurs configurations de target paramètres avec l’estimation de la frontière pareto, vous pouvez tracer le diagramme d’espace pour une solution spécifique du . Par exemple, le code suivant montre comment tracer le diagramme d’espace pour la première configuration des paramètres et le troisième runtime le plus court.

SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime

Diagramme de l’espace-temps

Dans l’informatique quantique, il existe un compromis entre le nombre de qubits physiques et le runtime de l’algorithme. Vous pouvez envisager l’allocation d’autant de qubits physiques que possible pour réduire le runtime de l’algorithme. Toutefois, le nombre de qubits physiques est limité par le nombre de qubits physiques disponibles dans le matériel quantique. Comprendre le compromis entre l’exécution et la mise à l’échelle du système est l’un des aspects les plus importants de l’estimation des ressources.

Lors de l’estimation des ressources d’un algorithme, vous pouvez utiliser le diagramme d’espace-temps pour visualiser les compromis entre le nombre de qubits physiques et le runtime de l’algorithme.

Notes

Pour afficher plusieurs combinaisons optimales dans le diagramme spatio-temps, vous devez définir le type d’estimation sur Estimation de la frontière pareto. Si vous exécutez l’estimateur de ressources dans Visual Studio Code à l’aide de l’option Q#: Calculer les estimations des ressources , l’estimation de la frontière pareto est activée par défaut.

Le diagramme espace-temps vous permet de trouver la combinaison optimale de {nombre de qubits, runtime} paires qui répondent aux contraintes du matériel quantique. Le diagramme montre le nombre de qubits physiques et le runtime de l’algorithme pour chaque paire {nombre de qubits, runtime}.

Pour exécuter le diagramme d’espace-temps dans Jupyter Notebook, vous pouvez utiliser le EstimatesOverview widget à partir du qsharp-widgets package.

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

Capture d’écran montrant le diagramme de qubit-temps de l’estimateur de ressources.

Conseil

Pour afficher les détails de l’estimation, vous pouvez pointer sur chaque point du diagramme.

Le diagramme d’espace-temps est particulièrement utile lors de la comparaison de plusieurs configurations de target paramètres pour le même algorithme.

Capture d’écran montrant le diagramme d’espace-temps et la table des résultats lors de l’exécution de plusieurs configurations de paramètre dans l’estimateur de ressources.

Notes

Si vous rencontrez un problème lors de l’utilisation de l’estimateur de ressources, case activée la page Résolution des problèmes ou contactez AzureQuantumInfo@microsoft.com.

Étapes suivantes