Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 un notebook Jupyter dans Visual Studio Code (VS Code).
Prérequis
Un environnement Python avec Python et Pip installés.
Dernière version de VS Code ou ouvrir VS Code sur le web.
VS Code avec les extensions Azure Quantum Development Kit, Python et Jupyter installées.
La dernière
qdkbibliothèque Python avec la fonctionnalité supplémentairejupyter.python -m pip install --upgrade "qdk[jupyter]"
Remarque
Si vous exécutez l’estimateur de ressources dans VS Code à partir de la palette de commandes, les commandes suivantes ne s’appliquent pas. Pour plus d’informations, consultez Différentes façons d’exécuter l’estimateur de ressources.
Paramètres de sortie
La sortie de l’estimateur de ressources est un rapport imprimé dans la console et auquel vous pouvez accéder par programmation. Par exemple, l’extrait de code suivant affiche les valeurs de tous les paramètres d’estimateur de ressource :
result['jobParams']
Le tableau suivant contient le type de données et une brève description pour chaque paramètre de sortie.
| 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 (suppose 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 physicalCounts 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 physicalCounts 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 physicalCounts 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.
from qdk.widgets import SpaceChart
SpaceChart(result)
Diagramme à secteurs montrant la distribution de qubits physiques totaux entre les qubits d’algorithme et les qubits de fabrique T. Il existe une table avec la répartition du nombre de copies de fabrique T et le 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 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 avec la commande QDK : Calculate Resource Estimate , l’estimation pareto frontier 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, utilisez le EstimatesOverview widget à partir du widgets package.
from qdk.widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
Capture d’écran montrant le diagramme de qubit-time 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.
Remarque
Si vous rencontrez des problèmes lorsque vous travaillez avec 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