Intégration de capacités de calcul quantique dans un support d'exécution à base de tâches

Résumé

L'équipe STORM (Inria/LaBRI) travaille à la conception de supports d’exécution d’applications scientifiques sur des machines de calcul parallèles et distribuées, dans le domaine que l’on nomme calcul intensif. Le support exécutif StarPU, développé par l'équipe STORM, offre notamment la capacité d’ordonnancer des tâches simultanément sur des processeurs classiques et sur des unités de calcul spécialisées telles que les processeurs graphiques (GPU, Graphical Processing Unit) qui délivrent une puissance de calcul inégalée actuellement sur une classe d’algorithmes, ou les processeurs reprogrammable (FPGA, Field-Programmable Gate Array) dont la configuration peut être re-flashée à la demande pour cibler des traitements spécifiques à une application. StarPU assure par ailleurs la modélisation des performances des tâches sur les différentes unités de calcul disponibles et exploite ces modèles de performance pour guider l’ordonnancement des tâches sur les unités les plus appropriées, ce que l’on appelle l’ordonnancement hétérogène.

La possibilité d’effectuer certains calculs avec une grande efficacité en exploitant certaines propriétés de la mécanique quantique, théorisée il y a plusieurs décennies, devient progressivement une réalité malgré de nombreux obstacles pratiques. Des environnements de programmation permettent d’ores et déjà de construire des “programmes” quantiques, appelés “circuits” dans le formalisme propre au calcul quantique. Parmi ces environnements, l’environnement QisKit développé par la société IBM est sans doute le plus mature actuellement.

Si les perspectives de calcul quantique progressent, il n’est cependant pas envisagé d’effectuer l’intégralité des travaux d’un programme “classique” sur un ordinateur quantique mais seulement certains traitements bien spécifiques. En ce sens, les unités de calcul quantiques sont donc plutôt perçues comme ayant vocation à être intégrées dans des ordinateurs, sous la forme de QPU (Quantic Processing Unit). La finalité de ce sujet de stage est d'étudier l’intégration du support d’unités QPUs via QisKit dans le support d’exécution StarPU, en lien avec les ingénieurs d’IBM en charge du développement de QisKit.

Objectifs

L’objectif principal est donc de mettre en œuvre le couplage de StarPU et QisKit, en étudiant les évolutions possiblement nécessaires de l’interface de programmation de StarPU et de son architecture. Une attention sera également portée sur l'étude de l’adéquation des fonctionnalités d’intégration de QisKit avec des logiciels tiers tels que StarPU. Dans ce cadre, l'équipe de développement de QisKit est particulièrement intéressée par un retour d’expérience et de besoins fonctionnalités supplémentaires pour faciliter ce type de couplage.

Il est à noter que StarPU et QisKit sont deux logiciels à code source ouvert diffusés sous licence libre. Les travaux de ce stage ont donc vocation à bénéficier à la communauté.

Mots-clés:

Calcul haute performance, parallélisme, programmation par tâches, simulation numérique, accélérateur, calcul quantique, QPU

Pré-requis:

  • Maîtrise de la programmation en langages C et C++
  • Maîtrise du développement en environnement Unix
  • Bon niveau d’anglais oral et écrit

Contacts:

  • Olivier Aumage (olivier.aumage@inria.fr) Centre de recherche Inria de l’université de Bordeaux 200 avenue de la vieille tour 33405 TALENCE

Lieu du stage:

  • Inria Bordeaux, équipe STORM

Référence: