Présentation des 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 les notebooks Jupyter. 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
Un environnement Python avec Python et Pip installés.
La dernière version de Visual Studio Code ou ouvrir VS Code sur le web.
VS Code avec les extensions Azure Quantum Development Kit, Python et Jupyter installées.
Les derniers packages et
qsharp-widgets
Azure Quantumqsharp
.python -m pip install --upgrade qsharp qsharp-widgets
Paramètres de sortie
Les données de sortie de l’estimateur de ressource sont un rapport imprimé dans la console et accessibles par programmation. Par exemple, l’extrait de code suivant montre comment accéder aux paramètres d’estimation des ressources.
result['jobParams']
Les données de sortie suivantes constituent les entrées possibles qui peuvent être accessibles par programme.
Paramètre de sortie de niveau supérieur | Type de données | Description |
---|---|---|
status |
string | L’état du travail, c’est toujours Succeeded . |
jobParams |
dictionnaire | Paramètres target du travail transmis en tant qu’entrée. |
physicalCounts |
dictionnaire | Estimations des ressources physiques. Pour plus d’informations, consultez Nombres physiques. |
physicalCountsFormatted |
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. |
logicalQubit |
dictionnaire | Propriétés du qubit logique. Pour plus d’informations, consultez qubit logique. |
tfactory |
dictionnaire | Propriétés de la fabrique T. |
logicalCounts |
dictionnaire | Estimations des ressources logiques de pré-disposition. Pour plus d’informations, consultez Nombres logiques. |
reportData |
dictionnaire | Données de génération pour le rapport d’estimation des ressources. |
Nombres physiques
Le physicalCounts
dictionnaire contient les entrées suivantes :
Paramètre de sortie | Type de données | Description |
---|---|---|
physicalQubits |
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 des physicalCounts
entrées suivantes :
Paramètre de sortie | Type de données | Description |
---|---|---|
algorithmicLogicalQubits |
nombre | Qubits logiques requis pour l’exécution de l’algorithme et n’incluent pas de ressources pour les fabriques T. |
algorithmicLogicalDepth |
nombre | Les cycles logiques requis pour l’exécution de l’algorithme et n’incluent pas de ressources pour les fabriques T. |
logicalDepth |
nombre | Nombre éventuellement ajusté de cycles calculés chaque fois que le temps d’exécution de la fabrique T est plus rapide, puis l’exécution de l’algorithme. |
numTstates |
nombre | Nombre d’états T consommés par l’algorithme. |
clockFrequency |
nombre | Nombre de cycles logiques par seconde. |
numTfactories |
nombre | Nombre d’usines T (en supposant la conception uniforme de la fabrique T). |
numTfactoryRuns |
nombre | Nombre de fréquences d’exécution de toutes les usines T parallèles. |
physicalQubitsForTfactories |
nombre | Nombre de qubits physiques pour toutes les usines T. |
physicalQubitsForAlgorithm |
nombre | Nombre de qubits physiques pour la disposition de l’algorithme. |
requiredLogicalQubitErrorRate |
nombre | Taux d’erreur logique requis. |
requiredLogicalTstateErrorRate |
nombre | Taux d’erreur d’état T logique requis. |
numTsPerRotation |
nombre | Nombre de portes T par rotation. |
cliffordErrorRate |
nombre | Taux d’erreur Clifford basé sur les paramètres qubit. |
Nombres physiques mis en forme
Le physicalCountsFormatted
dictionnaire contient les entrées suivantes :
Paramètre de sortie | Type de données | Description |
---|---|---|
runtime |
string | Exécution totale en tant que chaîne conviviale humaine. |
rqops |
string | Nombre d’opérations quantiques fiables par seconde (QOPS) mises en forme avec le suffixe de métrique. |
physicalQubits |
string | Nombre total de qubits physiques avec suffixe de métrique. |
algorithmicLogicalQubits |
string | Qubits logiques algorithmiques avec suffixe de métrique. |
algorithmicLogicalDepth |
string | Profondeur logique algorithmique avec suffixe de métrique. |
logicalDepth |
string | Profondeur logique algorithmique peut-être ajustée avec suffixe de métrique. |
numTstates |
string | Nombre d’états T avec suffixe de métrique. |
numTfactories |
string | Nombre de copies de fabrique T avec suffixe de métrique. |
numTfactoryRuns |
string | Nombre d’exécutions de fabrique T avec le suffixe de métrique. |
physicalQubitsForAlgorithm |
string | Nombre de qubits physiques pour l’algorithme avec suffixe de métrique. |
physicalQubitsForTfactories |
string | Nombre de qubits physiques pour les fabriques T avec suffixe de métrique. |
physicalQubitsForTfactoriesPercentage |
string | Nombre de qubits physiques pour toutes les usines T en pourcentage au total. |
requiredLogicalQubitErrorRate |
string | Taux d’erreur qubit logique requis tronqué. |
requiredLogicalTstateErrorRate |
string | Taux d’erreur d’état T tronqué requis. |
physicalQubitsPerLogicalQubit |
string | Nombre de qubits physiques par qubit logique avec suffixe de métrique. |
logicalCycleTime |
string | Temps de cycle logique d’un qubit logique en tant que chaîne conviviale humaine. |
clockFrequency |
string | Nombre de cycles logiques par seconde sous forme de chaîne conviviale humaine. |
logicalErrorRate |
string | Taux d’erreur logique tronqué. |
tfactoryPhysicalQubits |
string | Nombre de qubits physiques dans la fabrique T avec suffixe de métrique (ou message indiquant qu’il n’existe aucune fabrique T). |
tfactoryRuntime |
string | Exécution d’une fabrique T unique en tant que chaîne conviviale humaine (ou message indiquant qu’il n’existe aucune fabrique T). |
numInputTstates |
string | Nombre d’états T d’entrée (ou message indiquant qu’il n’existe aucune fabrique T). |
numUnitsPerRound |
string | Nombre d’unités par round de distillation, virgule séparée dans une chaîne (ou message indiquant qu’il n’y a pas de fabrique T). |
unitNamePerRound |
string | Noms d’unités de chaque round de distillation, virgule séparées dans une chaîne (ou message indiquant qu’il n’y a pas de fabrique T). |
codeDistancePerRound |
string | Le code distance par round de distillation, virgule séparée dans une chaîne (ou message indiquant qu’il n’y a pas de fabrique T). |
physicalQubitsPerRound |
string | Nombre de qubits physiques par round de distillation, virgule séparée dans une chaîne (ou message indiquant qu’il n’y a pas de fabrique T). |
tfactoryRuntimePerRound |
string | Le runtime de chaque round de distillation, affiché sous forme de chaînes conviviales séparées par des virgules (ou message indiquant qu’il n’y a pas de fabrique T). |
tstateLogicalErrorRate |
string | Taux d’erreur d’état T logique tronqué (ou message indiquant qu’il n’existe aucune fabrique T). |
logicalCountsNumQubits |
string | Nombre de qubits (pré-disposition) avec suffixe de métrique. |
logicalCountsTCount |
string | Nombre de portes T (pré-disposition) avec suffixe de métrique. |
logicalCountsRotationCount |
string | Nombre de portes de rotation (préconfiguration) avec suffixe de métrique. |
logicalCountsRotationDepth |
string | Profondeur de rotation (pré-disposition) avec suffixe de métrique. |
logicalCountsCczCount |
string | Nombre de portes CCZ (pré-disposition) avec suffixe de métrique. |
logicalCountsCcixCount |
string | Nombre de portes CCiX (pré-disposition) avec suffixe de métrique. |
logicalCountsMeasurementCount |
string | Nombre de mesures à qubit unique (pré-disposition) avec suffixe de métrique. |
errorBudget |
string | Budget total d’erreur tronqué. |
errorBudgetLogical |
string | Budget d’erreur tronqué pour une erreur logique. |
errorBudgetTstates |
string | Budget d’erreur tronqué pour la distillation d’état T défaillante. |
errorBudgetRotations |
string | Budget d’erreur tronqué pour la synthèse de rotation défectueuse. |
numTsPerRotation |
string | Nombre mis en forme de Ts par rotation (peut être Aucun). |
Qubit logique
Le logicalQubit
dictionnaire contient les entrées suivantes :
Paramètre de sortie | Type de données | Description |
---|---|---|
codeDistance |
nombre | Distance de code calculée pour le qubit logique. |
physicalQubits |
nombre | Nombre de qubits physiques pour chaque qubit logique. |
logicalCycleTime |
nombre | Heure d’exécution d’une opération logique. |
logicalErrorRate |
nombre | Taux d’erreur logique du qubit logique. |
Nombres logiques
Le logicalCounts
dictionnaire contient les entrées suivantes :
Paramètre de sortie | Type de données | Description |
---|---|---|
numQubits |
nombre | Nombre de qubits préconfigure. |
tCount |
nombre | Nombre pré-disposition de portes T. |
rotationCount |
nombre | Nombre de portes de rotation préalablement mises en page. |
rotationDepth |
nombre | Profondeur de rotation de pré-disposition. |
cczCount |
nombre | Nombre de portes CCZ préalablement mises en page. |
ccixCount |
nombre | Nombre de portes CCiX préconfigurées. |
measurementCount |
nombre | Nombre préconfiguré de mesures à qubit unique. |
Conseil
Si vous souhaitez utiliser un ensemble précalculé de nombres logiques pour un travail d’estimation des ressources, vous pouvez utiliser l’opération LogicalCounts
Python pour passer les estimations connues à l’estimateur de ressources. Pour plus d’informations, consultez Comment utiliser des estimations connues avec l’estimateur de ressources.
Diagramme d’espace
L’estimation globale des ressources physiques se compose du nombre total de qubits physiques utilisés pour les copies d’algorithme et 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)
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 de l’objet. 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 d’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 d’allouer 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 espace-temps pour visualiser les compromis entre le nombre de qubits physiques et le runtime de l’algorithme.
Remarque
Pour afficher plusieurs combinaisons optimales dans le diagramme espace-temps, vous devez définir le type d’estimation sur l’estimation pareto frontier. 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 d’espace-temps vous permet de trouver la combinaison optimale de {nombre de qubits, de paires runtime} 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 {nombre de qubits, paire runtime}.
Pour exécuter le diagramme 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"])
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.
Remarque
Si vous rencontrez un problème lors de l’utilisation de l’estimateur de ressources, consultez la page Résolution des problèmes ou contactez AzureQuantumInfo@microsoft.com.
Étapes suivantes
- Exécuter votre première estimation de ressource
- Personnaliser les estimations de ressources en caractéristiques de l’ordinateur
- Différentes façons d’exécuter l’estimateur de ressources
- Gérer les programmes volumineux avec l’estimateur de ressources
- Tutoriel : Estimer les ressources d’un problème de chimie quantique