Blog

L'étalonnage quantique pour les ordinateurs quantiques

2
Novembre
,
2023
Anastasia Marchenkova

L'informatique quantique promet de révolutionner certains secteurs, comme les matériaux, la médecine et la finance. Mais la question reste entière : Quand ces ordinateurs quantiques seront-ils suffisamment performants pour résoudre un problème réel

Les communiqués de presse qui vous annoncent "Nous avons mis au point un nouveau système quantique doté d'un million de qubits" ne vous disent pas tout. Un million de qubits avec un taux d'erreur très élevé et une faible cohérence (la durée de stockage des états quantiques) ne sont pas aussi utiles que 100 qubits idéaux - nous préférerions tous avoir ces derniers de toute façon. 

Mais comment déterminer l'efficacité et les performances de ces machines quantiques ? Ce n'est pas aussi facile que pour les ordinateurs classiques. Les critères SPEC, largement acceptés, mesurent différents aspects des performances des ordinateurs, notamment les tâches de l'unité centrale telles que l'arithmétique à virgule entière et à virgule flottante, les capacités de mémoire et de stockage, les opérations au niveau du système telles que le multithreading, et les tâches spécifiques aux applications telles que les requêtes de base de données et le débit des serveurs web. Ces critères fournissent un moyen normalisé de comparer différentes configurations matérielles et logicielles.

Certaines nouvelles mesures agrégées à un seul chiffre, comme le Quantum Volume dirigé par IBM, intègrent des facteurs tels que les erreurs de porte et de mesure, la diaphonie et la connectivité. Mais il manque encore des paramètres. Même les temps de fonctionnement des portes sont souvent absents de la documentation technique. Tout comme les ordinateurs traditionnels subissent des tests de performance et de stress pour montrer leurs capacités, l'étalonnage est essentiel pour les ordinateurs quantiques afin de montrer leur impact. 

Qu'est-ce que l'analyse comparative ?

L'étalonnage, en termes simples, est le processus de comparaison des performances d'un système par rapport à une norme ou aux performances de systèmes similaires. Pour les ordinateurs quantiques, l'étalonnage technique mesure la fidélité, le succès des calculs, les statistiques ou d'autres mesures de bruit pour des ensembles spécifiques de portes (les éléments constitutifs des circuits quantiques) et de qubits.

Lors de l'évaluation comparative d'un appareil, nous comprenons ses forces, ses faiblesses, ses domaines d'amélioration et les capacités du système. Par exemple, si l'on compare un CPU à un GPU, le CPU l'emportera pour les opérations système et l'utilisation typique d'un ordinateur, mais l'entraînement d'un modèle d'apprentissage profond ou le minage de bitcoins sur un GPU feront exploser le CPU. 

Que doit faire l'analyse comparative quantique ?

L'étalonnage quantique devrait nous permettre de comprendre en détail les capacités du système : 

  • Garantir la précision : Contrairement aux bits classiques, les bits quantiques (qubits) peuvent exister dans une superposition d'états, ce qui les rend intrinsèquement probabilistes. Cela signifie que l'exécution d'un même algorithme quantique plusieurs fois peut donner des résultats différents. L'évaluation comparative permet de déterminer la fiabilité d'un ordinateur quantique en testant la fréquence à laquelle il renvoie la bonne réponse.
  • Mesurer les performances : Les ordinateurs quantiques sont censés résoudre des problèmes trop complexes pour les ordinateurs classiques. L'analyse comparative permet de déterminer la rapidité, voire l'efficacité énergétique, avec laquelle un ordinateur quantique peut résoudre un problème par rapport à un superordinateur classique. 
  • Établir des taux d'erreur : Les systèmes quantiques sont sensibles aux influences extérieures, ce qui entraîne des erreurs beaucoup plus importantes dans les opérations de porte et la cohérence. L'étalonnage aide à déterminer les taux d'erreur, une statistique essentielle pour comprendre la fiabilité d'un système. Cependant, la clé est que les taux d'erreur peuvent dériver avec le temps et que les ordinateurs quantiques sont souvent recalibrés. Les taux d'étalonnage risquent de ne pas être exacts pendant longtemps. 
  • Valider la suprématie quantique : La suprématie quantique est la capacité des ordinateurs quantiques à résoudre des problèmes que les ordinateurs classiques ne peuvent pas résoudre.

Types d'analyse comparative quantique

Étant donné le stade précoce de la technologie, déterminer la capacité d'un ordinateur quantique n'est pas aussi simple que de mesurer la vitesse d'un ordinateur classique, et n'est pas non plus normalisé. L'étalonnage quantique est divisé en plusieurs types, chacun servant un objectif spécifique dans l'évaluation des caractéristiques de performance d'un dispositif quantique. 

Voici quelques-uns des principaux types de benchmarking quantique :

Évaluation comparative aléatoire

L'une des techniques de référence les plus courantes est l'étalonnage aléatoire. Cette méthode permet de mesurer les taux d'erreur moyens des portes quantiques d'un processeur quantique. En appliquant une série de portes quantiques aléatoires et en mesurant ensuite les résultats, l'étalonnage aléatoire permet d'obtenir une estimation du taux d'erreur généralement insensible aux erreurs de préparation de l'état et de mesure.  

Tomographie du jeu de portes

La tomographie des jeux de portes est apparue vers 2012 et a depuis été affinée et utilisée dans un grand nombre d'expériences pour surmonter les problèmes liés à l'étalonnage aléatoire. La tomographie des jeux de portes fournit une caractérisation complète des opérations logiques qu'un processeur quantique peut effectuer, y compris les erreurs systématiques. La méthode nécessite beaucoup plus de ressources que l'étalonnage aléatoire, mais produit un modèle d'erreur détaillé de l'ensemble de portes quantiques.

Tomographie des processus quantiques

La tomographie des processus quantiques est utilisée pour reconstruire le comportement d'un processus ou d'une porte quantique en préparant différents états d'entrée, en appliquant le processus quantique et en mesurant ensuite les états de sortie. Si cette technique peut être très précise pour un petit nombre de qubits, elle devient également difficile et gourmande en ressources pour les systèmes à qubits multiples. 

Tomographie d'état quantique

La tomographie des états quantiques est similaire à la tomographie des processus quantiques, mais elle se concentre sur la caractérisation des états quantiques plutôt que sur celle des processus. Elle est également gourmande en ressources et devient un véritable défi à mesure que le nombre de qubits augmente.

Analyse comparative de la diaphonie

La diaphonie est un problème dans les grands systèmes quantiques où les opérations de porte sur un qubit affectent l'autre. L'analyse comparative aléatoire ne peut pas capturer cette information, c'est pourquoi l'analyse comparative de la diaphonie mesure ces interactions non désirées. Cette mesure devient importante pour les algorithmes qui doivent paralléliser les portes quantiques. 

Analyse comparative des cycles

L'évaluation comparative des cycles est une technique plus récente conçue pour mesurer l'erreur d'un cycle entier (ou d'une couche) de portes quantiques, par opposition à des portes individuelles, et pour saisir les erreurs résultant de la diaphonie entre les qubits et d'autres erreurs locales et globales dans les processeurs à qubits multiples.

Analyse comparative de l'entropie croisée

L'évaluation comparative de l'entropie croisée (XEB) est utilisée pour évaluer les performances des processeurs quantiques en comparant la distribution de sortie d'un circuit quantique à une distribution idéale ou cible. La métrique de sortie calcule la précision des portes quantiques et la fidélité des calculs quantiques et compare à quel point un processeur quantique se rapproche des opérations quantiques idéales. Le processeur Sycamore de Google a utilisé XEB pour démontrer sa suprématie quantique

Chacun de ces types d'évaluation a ses propres avantages et faiblesses, et ils sont souvent combinés pour comprendre l'ensemble des capacités d'un processeur quantique. Au fur et à mesure que les types de matériel quantique et les capacités de ces systèmes se développent, de nouvelles méthodes d'analyse comparative quantique seront probablement proposées. 

Faire confiance, mais vérifier : votre défi en matière d'analyse comparative 

Supposons qu'une nouvelle puce quantique soit mise sur le marché et qu'elle fasse l'objet de revendications extraordinaires quant à sa puissance. Même si les statistiques de benchmarking ne sont pas publiées, ou si les statistiques de calibration sont anciennes, vous pouvez exécuter un code de benchmarking de manière indépendante. Classiq fournit une plateforme unique permettant d'effectuer des tests d'étalonnage par soi-même, sur un large ensemble de systèmes matériels quantiques réels provenant de différents fournisseurs et de simulateurs pour des comparaisons idéalisées. 

Votre tâche consiste à utiliser la plateforme Classiq pour réaliser une expérience d'évaluation aléatoire sur différents matériels quantiques et à la comparer avec un simulateur. Pour démarrer avec le SDK Classiq Python, suivez les instructions ici

Le code donné est un exemple Python qui utilise la bibliothèque Classiq pour effectuer des analyses comparatives aléatoires et comparer la fidélité de Clifford à deux qubits sur le dispositif "Nairobi" d'IBM et le simulateur quantique "idéal" d'IBM Aer.

Le code complet est disponible ici

Importation de bibliothèques 

Ce bloc importe diverses bibliothèques et modules nécessaires au programme. Des bibliothèques comme asyncio et itertools sont des bibliothèques Python standard, tandis que la bibliothèque classiq fournit les fonctions et les classes pour les extensions de l'informatique quantique.


from typing import Dict
import asyncio
from itertools import product

from classiq import (
    Modèle,
    Préférences,
    synthétiser_async,
    exécuter_async,
    set_quantum_program_execution_preferences,
    circuit généré,
)
from classiq.builtin_functions import RandomizedBenchmarking
from classiq.execution import (
    ExecutionDetails,
    ExecutionPreferences,
    IBMBackendPreferences,
)
from classiq.analyzer.rb import RBAnalysis, order_executor_data_by_hardware

Asynchrone Fonction principale

Ici, nous définissons les préférences pour l'ordinateur quantique à utiliser (IBM Quantum et sa machine nairobi).

Une liste d'objets Modèle est créée, chacun avec les préférences spécifiées.

Pour chaque modèle, nous appliquons l'analyse comparative aléatoire avec les paramètres correspondants et nous échantillonnons l'état quantique résultant.


async def main() :
    nombre_de_qubits = 2
    nombres_de_cliffords = [5, 10, 15, 20, 25]
    params_list = [
        RandomizedBenchmarking(
            num_of_qubits=num_of_qubits,
            nombre_de_cliffords=nombre_de_cliffords,
        )
        for num_of_cliffords in numbers_of_cliffords
    ]
    préférences = Préférences(
        backend_service_provider="IBM Quantum",
        nom_du_backend="nairobi",
        transpilation_option="decompose",
    )
    models = [Model(preferences=preferences) for _ in numbers_of_cliffords]
    for model, params in zip(models, params_list) :
        model.RandomizedBenchmarking(params)
        modèle.échantillon()

Synthèse du programme

Cet appel asynchrone convertit nos modèles de haut niveau en code quantique exécutable. Veillez à ajouter votre ACCESS_TOKEN IBM ici. 


    # Synthétiser tous les programmes quantiques de manière asynchrone
    programmes_quantiques = await asyncio.gather(
        *[synthesize_async(model.get_model()) for model in models]
    )

    # Créer chaque programme avec les préférences de chaque backend
    backend_names = ("ibm_nairobi", "aer_simulator")
    backend_prefs = IBMBackendPreferences.batch_preferences(
        backend_names=backend_names,
        access_token=ACCESS_TOKEN,
    )
    qprogs_with_preferences = list()
    pour qprog, backend_pref dans product(quantum_programs, backend_prefs) :
        preferences = ExecutionPreferences(backend_preferences=backend_pref)
        qprogs_with_preferences.append(
            set_quantum_program_execution_preferences(qprog, preferences)
        )

Exécution


    # Exécuter tous les programmes quantiques de manière asynchrone
    results = await asyncio.gather(
        *[execute_async(qprog) for qprog in qprogs_with_preferences]
    )

Analyse des résultats

Le reste du code traite de l'analyse des résultats des programmes quantiques, et éventuellement de leur représentation graphique. Vous pouvez ajouter des tracés et des analyses supplémentaires ici.


    parsed_results = [ExecutionDetails.parse_obj(res[0].value) for res in results]

    parsed_programs = [
        GeneratedCircuit.parse_raw(qprog).to_program() for qprog in quantum_programs
    ]

    clifford_number_mapping: Dict[str, int] = {
        program.code: num_clifford
        for program, num_clifford in zip(parsed_programs, numbers_of_cliffords)
    }
    mixed_data = tuple(
        zip(
            backend_prefs * len(parsed_programs),
            parsed_programs * len(backend_names),
            parsed_results,
        )
    )
    rb_analysis_params = order_executor_data_by_hardware(
        mixed_data=mixed_data, clifford_numbers_per_program=clifford_number_mapping
    )
    multiple_hardware_data = RBAnalysis(experiments_data=rb_analysis_params)

    total_data = await multiple_hardware_data.show_multiple_hardware_data_async()
    fig = multiple_hardware_data.plot_multiple_hardware_results()
    fig.show()

asyncio.run(main())

Après avoir réalisé l'expérience, évaluez les questions suivantes :

  • Quels sont les indicateurs que cette technique d'étalonnage nous a permis d'obtenir ? 
  • Quelles autres techniques d'analyse comparative devriez-vous utiliser pour comprendre l'ensemble du comportement de ce dispositif quantique ? 
  • Comment cette mesure évolue-t-elle sur des puces quantiques plus grandes, ou sur des types de matériel différents (par exemple, supraconducteurs ou ions piégés) ? 
  • Remplacez la variable backend_names par le matériel de votre choix et testez votre hypothèse !

À mesure que les affirmations relatives à l'informatique quantique deviennent de plus en plus extraordinaires, le besoin d'analyses comparatives se fait de plus en plus sentir pour fournir des preuves extraordinaires. Tout comme nous n'achèterions pas une voiture qui n'a pas été soumise à une batterie de tests de performance, nous ne devrions pas nous fier à des ordinateurs quantiques dont les capacités n'ont pas été évaluées.

N'oubliez pas que les entreprises sont incitées à choisir les techniques d'analyse comparative qui leur donnent les meilleurs chiffres. Faites confiance, mais vérifiez. Maintenant, vous pouvez faire votre propre benchmarking avec Classiq ! 

L'informatique quantique promet de révolutionner certains secteurs, comme les matériaux, la médecine et la finance. Mais la question reste entière : Quand ces ordinateurs quantiques seront-ils suffisamment performants pour résoudre un problème réel

Les communiqués de presse qui vous annoncent "Nous avons mis au point un nouveau système quantique doté d'un million de qubits" ne vous disent pas tout. Un million de qubits avec un taux d'erreur très élevé et une faible cohérence (la durée de stockage des états quantiques) ne sont pas aussi utiles que 100 qubits idéaux - nous préférerions tous avoir ces derniers de toute façon. 

Mais comment déterminer l'efficacité et les performances de ces machines quantiques ? Ce n'est pas aussi facile que pour les ordinateurs classiques. Les critères SPEC, largement acceptés, mesurent différents aspects des performances des ordinateurs, notamment les tâches de l'unité centrale telles que l'arithmétique à virgule entière et à virgule flottante, les capacités de mémoire et de stockage, les opérations au niveau du système telles que le multithreading, et les tâches spécifiques aux applications telles que les requêtes de base de données et le débit des serveurs web. Ces critères fournissent un moyen normalisé de comparer différentes configurations matérielles et logicielles.

Certaines nouvelles mesures agrégées à un seul chiffre, comme le Quantum Volume dirigé par IBM, intègrent des facteurs tels que les erreurs de porte et de mesure, la diaphonie et la connectivité. Mais il manque encore des paramètres. Même les temps de fonctionnement des portes sont souvent absents de la documentation technique. Tout comme les ordinateurs traditionnels subissent des tests de performance et de stress pour montrer leurs capacités, l'étalonnage est essentiel pour les ordinateurs quantiques afin de montrer leur impact. 

Qu'est-ce que l'analyse comparative ?

L'étalonnage, en termes simples, est le processus de comparaison des performances d'un système par rapport à une norme ou aux performances de systèmes similaires. Pour les ordinateurs quantiques, l'étalonnage technique mesure la fidélité, le succès des calculs, les statistiques ou d'autres mesures de bruit pour des ensembles spécifiques de portes (les éléments constitutifs des circuits quantiques) et de qubits.

Lors de l'évaluation comparative d'un appareil, nous comprenons ses forces, ses faiblesses, ses domaines d'amélioration et les capacités du système. Par exemple, si l'on compare un CPU à un GPU, le CPU l'emportera pour les opérations système et l'utilisation typique d'un ordinateur, mais l'entraînement d'un modèle d'apprentissage profond ou le minage de bitcoins sur un GPU feront exploser le CPU. 

Que doit faire l'analyse comparative quantique ?

L'étalonnage quantique devrait nous permettre de comprendre en détail les capacités du système : 

  • Garantir la précision : Contrairement aux bits classiques, les bits quantiques (qubits) peuvent exister dans une superposition d'états, ce qui les rend intrinsèquement probabilistes. Cela signifie que l'exécution d'un même algorithme quantique plusieurs fois peut donner des résultats différents. L'évaluation comparative permet de déterminer la fiabilité d'un ordinateur quantique en testant la fréquence à laquelle il renvoie la bonne réponse.
  • Mesurer les performances : Les ordinateurs quantiques sont censés résoudre des problèmes trop complexes pour les ordinateurs classiques. L'analyse comparative permet de déterminer la rapidité, voire l'efficacité énergétique, avec laquelle un ordinateur quantique peut résoudre un problème par rapport à un superordinateur classique. 
  • Établir des taux d'erreur : Les systèmes quantiques sont sensibles aux influences extérieures, ce qui entraîne des erreurs beaucoup plus importantes dans les opérations de porte et la cohérence. L'étalonnage aide à déterminer les taux d'erreur, une statistique essentielle pour comprendre la fiabilité d'un système. Cependant, la clé est que les taux d'erreur peuvent dériver avec le temps et que les ordinateurs quantiques sont souvent recalibrés. Les taux d'étalonnage risquent de ne pas être exacts pendant longtemps. 
  • Valider la suprématie quantique : La suprématie quantique est la capacité des ordinateurs quantiques à résoudre des problèmes que les ordinateurs classiques ne peuvent pas résoudre.

Types d'analyse comparative quantique

Étant donné le stade précoce de la technologie, déterminer la capacité d'un ordinateur quantique n'est pas aussi simple que de mesurer la vitesse d'un ordinateur classique, et n'est pas non plus normalisé. L'étalonnage quantique est divisé en plusieurs types, chacun servant un objectif spécifique dans l'évaluation des caractéristiques de performance d'un dispositif quantique. 

Voici quelques-uns des principaux types de benchmarking quantique :

Évaluation comparative aléatoire

L'une des techniques de référence les plus courantes est l'étalonnage aléatoire. Cette méthode permet de mesurer les taux d'erreur moyens des portes quantiques d'un processeur quantique. En appliquant une série de portes quantiques aléatoires et en mesurant ensuite les résultats, l'étalonnage aléatoire permet d'obtenir une estimation du taux d'erreur généralement insensible aux erreurs de préparation de l'état et de mesure.  

Tomographie du jeu de portes

La tomographie des jeux de portes est apparue vers 2012 et a depuis été affinée et utilisée dans un grand nombre d'expériences pour surmonter les problèmes liés à l'étalonnage aléatoire. La tomographie des jeux de portes fournit une caractérisation complète des opérations logiques qu'un processeur quantique peut effectuer, y compris les erreurs systématiques. La méthode nécessite beaucoup plus de ressources que l'étalonnage aléatoire, mais produit un modèle d'erreur détaillé de l'ensemble de portes quantiques.

Tomographie des processus quantiques

La tomographie des processus quantiques est utilisée pour reconstruire le comportement d'un processus ou d'une porte quantique en préparant différents états d'entrée, en appliquant le processus quantique et en mesurant ensuite les états de sortie. Si cette technique peut être très précise pour un petit nombre de qubits, elle devient également difficile et gourmande en ressources pour les systèmes à qubits multiples. 

Tomographie d'état quantique

La tomographie des états quantiques est similaire à la tomographie des processus quantiques, mais elle se concentre sur la caractérisation des états quantiques plutôt que sur celle des processus. Elle est également gourmande en ressources et devient un véritable défi à mesure que le nombre de qubits augmente.

Analyse comparative de la diaphonie

La diaphonie est un problème dans les grands systèmes quantiques où les opérations de porte sur un qubit affectent l'autre. L'analyse comparative aléatoire ne peut pas capturer cette information, c'est pourquoi l'analyse comparative de la diaphonie mesure ces interactions non désirées. Cette mesure devient importante pour les algorithmes qui doivent paralléliser les portes quantiques. 

Analyse comparative des cycles

L'évaluation comparative des cycles est une technique plus récente conçue pour mesurer l'erreur d'un cycle entier (ou d'une couche) de portes quantiques, par opposition à des portes individuelles, et pour saisir les erreurs résultant de la diaphonie entre les qubits et d'autres erreurs locales et globales dans les processeurs à qubits multiples.

Analyse comparative de l'entropie croisée

L'évaluation comparative de l'entropie croisée (XEB) est utilisée pour évaluer les performances des processeurs quantiques en comparant la distribution de sortie d'un circuit quantique à une distribution idéale ou cible. La métrique de sortie calcule la précision des portes quantiques et la fidélité des calculs quantiques et compare à quel point un processeur quantique se rapproche des opérations quantiques idéales. Le processeur Sycamore de Google a utilisé XEB pour démontrer sa suprématie quantique

Chacun de ces types d'évaluation a ses propres avantages et faiblesses, et ils sont souvent combinés pour comprendre l'ensemble des capacités d'un processeur quantique. Au fur et à mesure que les types de matériel quantique et les capacités de ces systèmes se développent, de nouvelles méthodes d'analyse comparative quantique seront probablement proposées. 

Faire confiance, mais vérifier : votre défi en matière d'analyse comparative 

Supposons qu'une nouvelle puce quantique soit mise sur le marché et qu'elle fasse l'objet de revendications extraordinaires quant à sa puissance. Même si les statistiques de benchmarking ne sont pas publiées, ou si les statistiques de calibration sont anciennes, vous pouvez exécuter un code de benchmarking de manière indépendante. Classiq fournit une plateforme unique permettant d'effectuer des tests d'étalonnage par soi-même, sur un large ensemble de systèmes matériels quantiques réels provenant de différents fournisseurs et de simulateurs pour des comparaisons idéalisées. 

Votre tâche consiste à utiliser la plateforme Classiq pour réaliser une expérience d'évaluation aléatoire sur différents matériels quantiques et à la comparer avec un simulateur. Pour démarrer avec le SDK Classiq Python, suivez les instructions ici

Le code donné est un exemple Python qui utilise la bibliothèque Classiq pour effectuer des analyses comparatives aléatoires et comparer la fidélité de Clifford à deux qubits sur le dispositif "Nairobi" d'IBM et le simulateur quantique "idéal" d'IBM Aer.

Le code complet est disponible ici

Importation de bibliothèques 

Ce bloc importe diverses bibliothèques et modules nécessaires au programme. Des bibliothèques comme asyncio et itertools sont des bibliothèques Python standard, tandis que la bibliothèque classiq fournit les fonctions et les classes pour les extensions de l'informatique quantique.


from typing import Dict
import asyncio
from itertools import product

from classiq import (
    Modèle,
    Préférences,
    synthétiser_async,
    exécuter_async,
    set_quantum_program_execution_preferences,
    circuit généré,
)
from classiq.builtin_functions import RandomizedBenchmarking
from classiq.execution import (
    ExecutionDetails,
    ExecutionPreferences,
    IBMBackendPreferences,
)
from classiq.analyzer.rb import RBAnalysis, order_executor_data_by_hardware

Asynchrone Fonction principale

Ici, nous définissons les préférences pour l'ordinateur quantique à utiliser (IBM Quantum et sa machine nairobi).

Une liste d'objets Modèle est créée, chacun avec les préférences spécifiées.

Pour chaque modèle, nous appliquons l'analyse comparative aléatoire avec les paramètres correspondants et nous échantillonnons l'état quantique résultant.


async def main() :
    nombre_de_qubits = 2
    nombres_de_cliffords = [5, 10, 15, 20, 25]
    params_list = [
        RandomizedBenchmarking(
            num_of_qubits=num_of_qubits,
            nombre_de_cliffords=nombre_de_cliffords,
        )
        for num_of_cliffords in numbers_of_cliffords
    ]
    préférences = Préférences(
        backend_service_provider="IBM Quantum",
        nom_du_backend="nairobi",
        transpilation_option="decompose",
    )
    models = [Model(preferences=preferences) for _ in numbers_of_cliffords]
    for model, params in zip(models, params_list) :
        model.RandomizedBenchmarking(params)
        modèle.échantillon()

Synthèse du programme

Cet appel asynchrone convertit nos modèles de haut niveau en code quantique exécutable. Veillez à ajouter votre ACCESS_TOKEN IBM ici. 


    # Synthétiser tous les programmes quantiques de manière asynchrone
    programmes_quantiques = await asyncio.gather(
        *[synthesize_async(model.get_model()) for model in models]
    )

    # Créer chaque programme avec les préférences de chaque backend
    backend_names = ("ibm_nairobi", "aer_simulator")
    backend_prefs = IBMBackendPreferences.batch_preferences(
        backend_names=backend_names,
        access_token=ACCESS_TOKEN,
    )
    qprogs_with_preferences = list()
    pour qprog, backend_pref dans product(quantum_programs, backend_prefs) :
        preferences = ExecutionPreferences(backend_preferences=backend_pref)
        qprogs_with_preferences.append(
            set_quantum_program_execution_preferences(qprog, preferences)
        )

Exécution


    # Exécuter tous les programmes quantiques de manière asynchrone
    results = await asyncio.gather(
        *[execute_async(qprog) for qprog in qprogs_with_preferences]
    )

Analyse des résultats

Le reste du code traite de l'analyse des résultats des programmes quantiques, et éventuellement de leur représentation graphique. Vous pouvez ajouter des tracés et des analyses supplémentaires ici.


    parsed_results = [ExecutionDetails.parse_obj(res[0].value) for res in results]

    parsed_programs = [
        GeneratedCircuit.parse_raw(qprog).to_program() for qprog in quantum_programs
    ]

    clifford_number_mapping: Dict[str, int] = {
        program.code: num_clifford
        for program, num_clifford in zip(parsed_programs, numbers_of_cliffords)
    }
    mixed_data = tuple(
        zip(
            backend_prefs * len(parsed_programs),
            parsed_programs * len(backend_names),
            parsed_results,
        )
    )
    rb_analysis_params = order_executor_data_by_hardware(
        mixed_data=mixed_data, clifford_numbers_per_program=clifford_number_mapping
    )
    multiple_hardware_data = RBAnalysis(experiments_data=rb_analysis_params)

    total_data = await multiple_hardware_data.show_multiple_hardware_data_async()
    fig = multiple_hardware_data.plot_multiple_hardware_results()
    fig.show()

asyncio.run(main())

Après avoir réalisé l'expérience, évaluez les questions suivantes :

  • Quels sont les indicateurs que cette technique d'étalonnage nous a permis d'obtenir ? 
  • Quelles autres techniques d'analyse comparative devriez-vous utiliser pour comprendre l'ensemble du comportement de ce dispositif quantique ? 
  • Comment cette mesure évolue-t-elle sur des puces quantiques plus grandes, ou sur des types de matériel différents (par exemple, supraconducteurs ou ions piégés) ? 
  • Remplacez la variable backend_names par le matériel de votre choix et testez votre hypothèse !

À mesure que les affirmations relatives à l'informatique quantique deviennent de plus en plus extraordinaires, le besoin d'analyses comparatives se fait de plus en plus sentir pour fournir des preuves extraordinaires. Tout comme nous n'achèterions pas une voiture qui n'a pas été soumise à une batterie de tests de performance, nous ne devrions pas nous fier à des ordinateurs quantiques dont les capacités n'ont pas été évaluées.

N'oubliez pas que les entreprises sont incitées à choisir les techniques d'analyse comparative qui leur donnent les meilleurs chiffres. Faites confiance, mais vérifiez. Maintenant, vous pouvez faire votre propre benchmarking avec Classiq ! 

A propos de "The Qubit Guy's Podcast" (Le podcast du gars de Qubit)

Animé par The Qubit Guy (Yuval Boger, notre directeur marketing), le podcast accueille des leaders d'opinion de l'informatique quantique pour discuter de questions commerciales et techniques qui ont un impact sur l'écosystème de l'informatique quantique. Nos invités fournissent des informations intéressantes sur les logiciels et algorithmes d'ordinateurs quantiques, le matériel informatique quantique, les applications clés de l'informatique quantique, les études de marché de l'industrie quantique et bien plus encore.

Si vous souhaitez proposer un invité pour le podcast, veuillez nous contacter.

Créez des logiciels quantiques sans contraintes

contactez-nous