Cette étude s'est réalisée dans le domaine du calcul quantique (QC), lié en particulier à son intégration dans le calcul haute performance (HPC). Le calcul quantique promet, en exploitant le comportement de systèmes physiques quantiques, des gains en temps de calcul et/ou en qualité des résultats pour un certain nombre de problèmes. Nous nous sommes intéressés particulièrement à l'intégration des piles logicielles HPC et QC, qui englobent tous les outils et programmes qui permettent le développement et l'exécution d'un code : compilateur, bibliothèques, système d'exploitation, etc. Cependant, l'intégration de ces piles logicielles HPC et QC n'est aujourd'hui que peu étudiée et son impact sur les performances des applications n'est pas systématiquement évalué. Ce manque d'évaluation systématique est dû à la fois à la grande différence entre les piles logicielles HPC et QC ainsi qu'à la nouveauté des systèmes hybrides HPC-QC. Tout cela peut engendrer des difficultés lors de l'implémentation, du déploiement et de l'exécution d'applications combinant calcul quantique et calcul haute performance. Aujourd'hui, les caractéristiques des systèmes et piles logicielles HPC et QC sont évaluées séparément, le côté HPC est notamment étudié depuis plusieurs décennies. Cela signifie que ces évaluations ne concernent pas les nouvelles piles logicielles spécifiques aux systèmes hybrides HPC-QC. Par ailleurs, les piles logicielles HPC et QC comportent de nombreuses étapes liées à des problèmes d'optimisation combinatoire et il existe plusieurs algorithmes quantiques qui visent à résoudre ce type de problèmes. Cependant l'intégration de ce type d'algorithme quantique dans les piles logicielles HPC et QC n'est encore que peu étudiée. Tout cela justifie notre étude consistant à évaluer comment l'intégration des piles logicielles HPC-QC présentes et futures pourrait impacter l'exécution des applications. Pour cela, nous avons tout d'abord développé et validé une suite modulaire de benchmarks permettant d'évaluer l'influence des piles logicielles sur la vitesse d'exécution de codes HPC-QC. Cette suite de benchmarks, que nous avons appelée HPCQCMark, vise à fournir un outil ouvert et simple d'utilisation qui permet de rapidement tester plusieurs combinaisons de piles et d'applications HPC-QC. Nous avons ainsi évalué l'impact sur l'exécution de micro-applications de divers aspects des piles logicielles déployées sur les systèmes HPC-QC installés au CEA et au Riken. Cela nous a permis de mettre en avant à la fois des bugs dans les piles testées et plusieurs liens entre certaines caractéristiques des piles et le temps d'exécution des codes. Ayant mis en avant l'existence de ces liens, nous avons voulu déterminer s'il serait possible d'améliorer l'exécution de codes HPC en intégrant du calcul quantique dans une pile logicielle. Pour cela, nous avons conçu des algorithmes hybrides classique-quantique pour l'allocation de registres CPU, une étape importante de la compilation qui est au cœur de la pile logicielle HPC. Ces approches hybrides reposent sur l'utilisation d'algorithmes quantiques variationnels afin de réaliser une partie de l'allocation, qui est représentée sous la forme d'un problème d'optimisation combinatoire. Finalement, nous avons implémenté ces algorithmes hybrides et les avons intégrés dans des compilateurs HPC existants et utilisés par un grand nombre de développeurs. Nous avons ensuite pu évaluer leur capacité à effectivement améliorer la qualité des codes HPC compilés. Cela nous a permis de mettre en avant des situations dans lesquelles le code compilé en utilisant notre méthode hybride avait effectivement un meilleur temps d'exécution qu'en utilisant une méthode classique.
Cette étude s'est réalisée dans le domaine du calcul quantique (QC), lié en particulier à son intégration dans le calcul haute performance (HPC). Le calcul quantique promet, en exploitant le comportement de systèmes physiques quantiques, des gains en temps de calcul et/ou en qualité des résultats pour un certain nombre de problèmes. Nous nous sommes intéressés particulièrement à l'intégration des piles logicielles HPC et QC, qui englobent tous les outils et programmes qui permettent le développement et l'exécution d'un code : compilateur, bibliothèques, système d'exploitation, etc. Cependant, l'intégration de ces piles logicielles HPC et QC n'est aujourd'hui que peu étudiée et son impact sur les performances des applications n'est pas systématiquement évalué. Ce manque d'évaluation systématique est dû à la fois à la grande différence entre les piles logicielles HPC et QC ainsi qu'à la nouveauté des systèmes hybrides HPC-QC. Tout cela peut engendrer des difficultés lors de l'implémentation, du déploiement et de l'exécution d'applications combinant calcul quantique et calcul haute performance. Aujourd'hui, les caractéristiques des systèmes et piles logicielles HPC et QC sont évaluées séparément, le côté HPC est notamment étudié depuis plusieurs décennies. Cela signifie que ces évaluations ne concernent pas les nouvelles piles logicielles spécifiques aux systèmes hybrides HPC-QC. Par ailleurs, les piles logicielles HPC et QC comportent de nombreuses étapes liées à des problèmes d'optimisation combinatoire et il existe plusieurs algorithmes quantiques qui visent à résoudre ce type de problèmes. Cependant l'intégration de ce type d'algorithme quantique dans les piles logicielles HPC et QC n'est encore que peu étudiée. Tout cela justifie notre étude consistant à évaluer comment l'intégration des piles logicielles HPC-QC présentes et futures pourrait impacter l'exécution des applications. Pour cela, nous avons tout d'abord développé et validé une suite modulaire de benchmarks permettant d'évaluer l'influence des piles logicielles sur la vitesse d'exécution de codes HPC-QC. Cette suite de benchmarks, que nous avons appelée HPCQCMark, vise à fournir un outil ouvert et simple d'utilisation qui permet de rapidement tester plusieurs combinaisons de piles et d'applications HPC-QC. Nous avons ainsi évalué l'impact sur l'exécution de micro-applications de divers aspects des piles logicielles déployées sur les systèmes HPC-QC installés au CEA et au Riken. Cela nous a permis de mettre en avant à la fois des bugs dans les piles testées et plusieurs liens entre certaines caractéristiques des piles et le temps d'exécution des codes. Ayant mis en avant l'existence de ces liens, nous avons voulu déterminer s'il serait possible d'améliorer l'exécution de codes HPC en intégrant du calcul quantique dans une pile logicielle. Pour cela, nous avons conçu des algorithmes hybrides classique-quantique pour l'allocation de registres CPU, une étape importante de la compilation qui est au cœur de la pile logicielle HPC. Ces approches hybrides reposent sur l'utilisation d'algorithmes quantiques variationnels afin de réaliser une partie de l'allocation, qui est représentée sous la forme d'un problème d'optimisation combinatoire. Finalement, nous avons implémenté ces algorithmes hybrides et les avons intégrés dans des compilateurs HPC existants et utilisés par un grand nombre de développeurs. Nous avons ensuite pu évaluer leur capacité à effectivement améliorer la qualité des codes HPC compilés. Cela nous a permis de mettre en avant des situations dans lesquelles le code compilé en utilisant notre méthode hybride avait effectivement un meilleur temps d'exécution qu'en utilisant une méthode classique.
Optimisation et évaluation des piles logicielles intégrées HPC-Quantiques Cette étude s'est réalisée dans le domaine du calcul quantique (QC), lié en particulier à son intégration dans le calcul haute performance (HPC). Le calcul quantique promet, en exploitant le comportement de systèmes physiques quantiques, des gains en temps de calcul et/ou en qualité des résultats pour un certain nombre de problèmes. Nous nous sommes intéressés particulièrement à l'intégration des piles logicielles HPC et QC, qui englobent tous les outils et programmes qui permettent le développement et l'exécution d'un code : compilateur, bibliothèques, système d'exploitation, etc. Cependant, l'intégration de ces piles logicielles HPC et QC n'est aujourd'hui que peu étudiée et son impact sur les performances des applications n'est pas systématiquement évalué. Ce manque d'évaluation systématique est dû à la fois à la grande différence entre les piles logicielles HPC et QC ainsi qu'à la nouveauté des systèmes hybrides HPC-QC. Tout cela peut engendrer des difficultés lors de l'implémentation, du déploiement et de l'exécution d'applications combinant calcul quantique et calcul haute performance. Aujourd'hui, les caractéristiques des systèmes et piles logicielles HPC et QC sont évaluées séparément, le côté HPC est notamment étudié depuis plusieurs décennies. Cela signifie que ces évaluations ne concernent pas les nouvelles piles logicielles spécifiques aux systèmes hybrides HPC-QC. Par ailleurs, les piles logicielles HPC et QC comportent de nombreuses étapes liées à des problèmes d'optimisation combinatoire et il existe plusieurs algorithmes quantiques qui visent à résoudre ce type de problèmes. Cependant l'intégration de ce type d'algorithme quantique dans les piles logicielles HPC et QC n'est encore que peu étudiée. Tout cela justifie notre étude consistant à évaluer comment l'intégration des piles logicielles HPC-QC présentes et futures pourrait impacter l'exécution des applications. Pour cela, nous avons tout d'abord développé et validé une suite modulaire de benchmarks permettant d'évaluer l'influence des piles logicielles sur la vitesse d'exécution de codes HPC-QC. Cette suite de benchmarks, que nous avons appelée HPCQCMark, vise à fournir un outil ouvert et simple d'utilisation qui permet de rapidement tester plusieurs combinaisons de piles et d'applications HPC-QC. Nous avons ainsi évalué l'impact sur l'exécution de micro-applications de divers aspects des piles logicielles déployées sur les systèmes HPC-QC installés au CEA et au Riken. Cela nous a permis de mettre en avant à la fois des bugs dans les piles testées et plusieurs liens entre certaines caractéristiques des piles et le temps d'exécution des codes. Ayant mis en avant l'existence de ces liens, nous avons voulu déterminer s'il serait possible d'améliorer l'exécution de codes HPC en intégrant du calcul quantique dans une pile logicielle. Pour cela, nous avons conçu des algorithmes hybrides classique-quantique pour l'allocation de registres CPU, une étape importante de la compilation qui est au cœur de la pile logicielle HPC. Ces approches hybrides reposent sur l'utilisation d'algorithmes quantiques variationnels afin de réaliser une partie de l'allocation, qui est représentée sous la forme d'un problème d'optimisation combinatoire. Finalement, nous avons implémenté ces algorithmes hybrides et les avons intégrés dans des compilateurs HPC existants et utilisés par un grand nombre de développeurs. Nous avons ensuite pu évaluer leur capacité à effectivement améliorer la qualité des codes HPC compilés. Cela nous a permis de mettre en avant des situations dans lesquelles le code compilé en utilisant notre méthode hybride avait effectivement un meilleur temps d'exécution qu'en utilisant une méthode classique.
Le calcul quantique est nouveau paradigme qui sera peut-être en capacité de résoudre certains problèmes intéressants et très spécifiques plus vite qu'un ordinateur classique. Mais pour atteindre le régime dans lequel les ordinateurs quantiques seront plus efficaces que leurs équivalents classiques, plusieurs étapes cruciales doivent être atteintes. Les taux d'erreur des puces quantiques actuelles doivent être drastiquement améliorés, tout comme leur nombre de qubits, les algorithmes doivent évoluer pour prendre en compte le taux d'erreur élevé des puces, les compilateurs et implémentations doivent être adaptés à la puce quantique qui sera utilisée pour l'exécution et les façons d'analyser des états ou programmes quantiques nécessitent des améliorations.Dans cette thèse, nous nous concentrons sur certaines de ces étapes et améliorons l'état de l'art en essayant de se rapprocher le plus possible du régime où les ordinateurs quantiques auront un avantage sur les ordinateurs classiques. Nous commençons par montrer comment nous avons implémenté un algorithme quantique non trivial et analysé son comportement ainsi que les ressources nécessaires à son exécution.Cette analyse a confirmé que les puces quantiques actuelles étaient incapables d'exécuter ce genre d'implémentation, même après avoir pris en compte les subtilités dues au matériel et optimisé grandement le programme. Cet effort d'optimisation a donné lieu à l'implémentation de l'outil qprof, un profileur de programme quantique capable d'analyser des implémentations et de générer un rapport textuel et lisible résumant la hiérarchie des appels et leur coût approximatif.Nous présentons aussi un algorithme classique pour résoudre le problème du routage de qubit, une des étapes les plus coûteuse en terme de porte quantique additionnelle dans les compilateurs de programme quantiques. Cet algorithme permet de prendre en compte les calibrations les plus récentes de la puce quantique visée afin d'adapter le programme quantique compilé aux différents taux d'erreurs de la puce. Nous décrivons comment l'algorithme fonctionne et montrons qu'il apporte une amélioration substantielle de la fidélité de l'état quantique créé par le programme compilé par rapport à l'état de l'art.Nous avons aussi implémenté un algorithme variationnel permettant de résoudre des systèmes linéaires et analysé son comportement sur des puces quantiques actuelles ainsi que les besoins en ressources quantiques afin d'exécuter cet algorithme avec différents systèmes linéaires. Finalement, nous avons effectué une étude sur les erreurs présentes sur des qubits isolés et introduit une nouvelle visualisation permettant de mettre en avant des erreurs systématiques et non mitigées par les calibrations automatiques réalisées à intervalles réguliers sur les puces quantiques.
Le calcul quantique est nouveau paradigme qui sera peut-être en capacité de résoudre certains problèmes intéressants et très spécifiques plus vite qu'un ordinateur classique. Mais pour atteindre le régime dans lequel les ordinateurs quantiques seront plus efficaces que leurs équivalents classiques, plusieurs étapes cruciales doivent être atteintes. Les taux d'erreur des puces quantiques actuelles doivent être drastiquement améliorés, tout comme leur nombre de qubits, les algorithmes doivent évoluer pour prendre en compte le taux d'erreur élevé des puces, les compilateurs et implémentations doivent être adaptés à la puce quantique qui sera utilisée pour l'exécution et les façons d'analyser des états ou programmes quantiques nécessitent des améliorations.Dans cette thèse, nous nous concentrons sur certaines de ces étapes et améliorons l'état de l'art en essayant de se rapprocher le plus possible du régime où les ordinateurs quantiques auront un avantage sur les ordinateurs classiques. Nous commençons par montrer comment nous avons implémenté un algorithme quantique non trivial et analysé son comportement ainsi que les ressources nécessaires à son exécution.Cette analyse a confirmé que les puces quantiques actuelles étaient incapables d'exécuter ce genre d'implémentation, même après avoir pris en compte les subtilités dues au matériel et optimisé grandement le programme. Cet effort d'optimisation a donné lieu à l'implémentation de l'outil qprof, un profileur de programme quantique capable d'analyser des implémentations et de générer un rapport textuel et lisible résumant la hiérarchie des appels et leur coût approximatif.Nous présentons aussi un algorithme classique pour résoudre le problème du routage de qubit, une des étapes les plus coûteuse en terme de porte quantique additionnelle dans les compilateurs de programme quantiques. Cet algorithme permet de prendre en compte les calibrations les plus récentes de la puce quantique visée afin d'adapter le programme quantique compilé aux différents taux d'erreurs de la puce. Nous décrivons comment l'algorithme fonctionne et montrons qu'il apporte une amélioration substantielle de la fidélité de l'état quantique créé par le programme compilé par rapport à l'état de l'art.Nous avons aussi implémenté un algorithme variationnel permettant de résoudre des systèmes linéaires et analysé son comportement sur des puces quantiques actuelles ainsi que les besoins en ressources quantiques afin d'exécuter cet algorithme avec différents systèmes linéaires. Finalement, nous avons effectué une étude sur les erreurs présentes sur des qubits isolés et introduit une nouvelle visualisation permettant de mettre en avant des erreurs systématiques et non mitigées par les calibrations automatiques réalisées à intervalles réguliers sur les puces quantiques.
Evaluation de performance et amélioration du paramétrage des systèmes de contrôle pour la résolution de problèmes d'optimisation sur plateformes NISQ Les ordinateurs quantiques actuels sont encore loin de ressembler à l'image idéalisée que pouvaient se faire les pionniers de l'algorithmie quantique : ils sont de taille limitée (ayant au mieux quelques centaines de qubits) et ont un mauvais rapport signal/bruit. Ces ordinateurs sont appelés ordinateurs quantiques bruités de taille intermédiaire (NISQ). Cela ne signifie pas pour autant qu'ils sont seulement des prototypes sans utilité pratique. Les ordinateurs NISQ resteront majoritaires jusqu'au développement de machines employant des méthodes de correction d'erreurs (FTQC). De ce fait, il serait de première importance de faire des investigations sur le type de calcul et d'algorithme qu'il est possible de mettre en oeuvre sur ces machines, en particulier dans le cadre des problèmes d'optimisation basés sur des algorithmes hybrides où l'ordinateur NISQ pourrait être utilisé comme accélérateur de calcul et intégré à un processus classique plus large. L'implémentation d'algorithmes NISQ nécessite des optimisations proches du matériel afin de tirer le meilleur parti de ces nouvelles technologies. Cela inclut de potentielles optimisations à différents niveaux de la pile logicielle quantique allant de la formulation du problème d'optimisation au raffinement des solutions retournées par l'ordinateur quantique, en passant par l'amélioration de la compilation dédiée en fonction de la puce utilisée. Dans cette thèse, nous proposons d'évaluer les limites des annealers quantiques (QA) tels que ceux commercialisés par l'entreprise D-Wave. Cette technologie exploite l'effet tunnel durant son processus d'annealing mais rencontre des difficultés pour trouver des solutions de bonne qualité pour des problèmes d'optimisation binaires quadratiques non contraints (QUBO). Un problème contraint peut être formulé en QUBO en traduisant les contraintes sous forme de pénalités ajoutées à la fonction de coût. Dans le cas du problème de partitionnement de graphe équilibré, la contrainte d'équilibrage est transformée sous forme de pénalités et tend à densifier le problème QUBO. Il est alors difficile de trouver une représentation de ce problème sur les puces quantiques faiblement connectées. C'est ici que la compilation joue un rôle clef mais reste difficile à réaliser. Nous avons développé un cadriciel afin d'évaluer la performance des annealers quantiques basés sur un ensemble d'instances dont la représentation sur puce quantique est optimale. Malgré la bonne qualité de cette représentation, l'annealer quantique est peu compétitif dans la résolution de problèmes d'optimisation par rapport à des méthodes de résolution classiques de l'état de l'art. Nous présentons également un second outil permettant de faciliter la comparaison d'études de performances basées sur des problèmes d'optimisation. Cet outil permet d'évaluer la diversité des propriétés des instances utilisées dans le cadre d'une évaluation de performance. Il permet ainsi d'évaluer le niveau de confiance pouvant être accordé à une étude de performance. Enfin, l'étape de compilation des annealers quantiques permet d'associer un qubit logique à un ensemble de qubits physiques fortement liés. Le bon paramétrage de la force de couplage entre ces qubits physiques permet d'accroître considérablement la performance de l'annealer quantique. Nous introduisons une méthode de recherche dichotomique afin de paramétrer efficacement cette force de couplage.
Les ordinateurs quantiques actuels sont encore loin de ressembler à l'image idéalisée que pouvaient se faire les pionniers de l'algorithmie quantique : ils sont de taille limitée (ayant au mieux quelques centaines de qubits) et ont un mauvais rapport signal/bruit. Ces ordinateurs sont appelés ordinateurs quantiques bruités de taille intermédiaire (NISQ). Cela ne signifie pas pour autant qu'ils sont seulement des prototypes sans utilité pratique. Les ordinateurs NISQ resteront majoritaires jusqu'au développement de machines employant des méthodes de correction d'erreurs (FTQC). De ce fait, il serait de première importance de faire des investigations sur le type de calcul et d'algorithme qu'il est possible de mettre en oeuvre sur ces machines, en particulier dans le cadre des problèmes d'optimisation basés sur des algorithmes hybrides où l'ordinateur NISQ pourrait être utilisé comme accélérateur de calcul et intégré à un processus classique plus large. L'implémentation d'algorithmes NISQ nécessite des optimisations proches du matériel afin de tirer le meilleur parti de ces nouvelles technologies. Cela inclut de potentielles optimisations à différents niveaux de la pile logicielle quantique allant de la formulation du problème d'optimisation au raffinement des solutions retournées par l'ordinateur quantique, en passant par l'amélioration de la compilation dédiée en fonction de la puce utilisée. Dans cette thèse, nous proposons d'évaluer les limites des annealers quantiques (QA) tels que ceux commercialisés par l'entreprise D-Wave. Cette technologie exploite l'effet tunnel durant son processus d'annealing mais rencontre des difficultés pour trouver des solutions de bonne qualité pour des problèmes d'optimisation binaires quadratiques non contraints (QUBO). Un problème contraint peut être formulé en QUBO en traduisant les contraintes sous forme de pénalités ajoutées à la fonction de coût. Dans le cas du problème de partitionnement de graphe équilibré, la contrainte d'équilibrage est transformée sous forme de pénalités et tend à densifier le problème QUBO. Il est alors difficile de trouver une représentation de ce problème sur les puces quantiques faiblement connectées. C'est ici que la compilation joue un rôle clef mais reste difficile à réaliser. Nous avons développé un cadriciel afin d'évaluer la performance des annealers quantiques basés sur un ensemble d'instances dont la représentation sur puce quantique est optimale. Malgré la bonne qualité de cette représentation, l'annealer quantique est peu compétitif dans la résolution de problèmes d'optimisation par rapport à des méthodes de résolution classiques de l'état de l'art. Nous présentons également un second outil permettant de faciliter la comparaison d'études de performances basées sur des problèmes d'optimisation. Cet outil permet d'évaluer la diversité des propriétés des instances utilisées dans le cadre d'une évaluation de performance. Il permet ainsi d'évaluer le niveau de confiance pouvant être accordé à une étude de performance. Enfin, l'étape de compilation des annealers quantiques permet d'associer un qubit logique à un ensemble de qubits physiques fortement liés. Le bon paramétrage de la force de couplage entre ces qubits physiques permet d'accroître considérablement la performance de l'annealer quantique. Nous introduisons une méthode de recherche dichotomique afin de paramétrer efficacement cette force de couplage.
Algorithmes hybrides quantiques-classiques pour le calcul haute performance Le calcul haute performance (HPC) constitue aujourd'hui l'outil principal du calcul scientifique à grande échelle, mais les gains de performance sont de plus en plus contraints par des limites architecturales et énergétiques. En parallèle, le calcul quantique est un paradigme émergent, encore en cours de développement, mais déjà prometteur pour l'accélération de certaines briques numériques. Un enjeu central consiste donc à comprendre comment intégrer efficacement des processeurs quantiques au sein des infrastructures HPC existantes, plutôt que de les considérer comme des accélérateurs isolés. L'objectif de cette thèse est d'explorer le calcul hybride quantique-classique, à la fois du point de vue algorithmique et des modèles de programmation. Nous étudions comment combiner de manière cohérente des ressources classiques et quantiques au sein de workflows hybrides, en exploitant les forces respectives de chaque paradigme. Comme cas d'usage principal, nous nous intéressons à la résolution de systèmes linéaires, un noyau fondamental du calcul scientifique et du HPC. Dans un premier temps, nous abordons la problématique de l'encodage de données classiques sous forme de représentations quantiques, qui constitue un goulot d'étranglement majeur des algorithmes hybrides. Nous proposons une amélioration du coût de pré-traitement pour l'encodage de matrice dans des unitaires, via décomposition dans la base de Pauli. Nous introduisons ensuite un solveur hybride reposant sur la Quantum Singular Value Transformation (QSVT). Inspirée de l'algèbre linéaire numérique classique, une approche de raffinement itératif en précision mixte est proposée, combinant des résolutions quantiques basse précision avec des corrections classiques haute précision. Une analyse détaillée de la convergence, des erreurs et des coûts de calcul est présentée, montrant que l'hybridation permet de réduire les ressources quantiques nécessaires pour atteindre une précision donnée. Enfin, nous abordons les aspects de programmation et d'implémentation à travers la conception d'un framework de programmation hybride quantique-classique, Q-Pragma, destiné à faciliter l'intégration de l'accélération quantique dans des environnements HPC existants. Ce travail contribue ainsi au développement de codes hybrides quantique-HPC plus réalistes et exploitables.