A complete application in a minute
Tailored resume and cover letter, ready to send.
Inria Talence recherche un stagiaire pour développer et expérimenter des modèles de programmation et d’exécution sur des plateformes HPC hybrides incluant le calcul quantique. Le stage implique la modélisation des performances et des portages entre CPU et accélérateurs, avec des validations sur simulateur et plateformes réelles.
Compétences en C sous Unix, programmation parallèle et expérience avec des accélérateurs (GPU) sont requises. Communication et travail en équipe attendues.
Ce stage s'inscrit dans le cadre d'une collaboration naissante et appelée à se renforcer entre Inria et l'École de Technologie Supérieure du Québec (ÉTS), à Montréal (Canada). Des ordinateurs quantiques commencent, depuis quelques années, à être mis à la disposition de la communauté informatique, notamment via leur installation dans des centres de calcul scientifique à proximité de plateformes de calcul intensif. Cette proximité offre l'opportunité d'intégrer l'utilisation d'ordinateurs quantiques dans des applications. En effet, les unités de calcul quantique (Quantum Processing Units / QPU) ne sont pas des ordinateurs polyvalents : elles ne peuvent effectuer que certains types de calculs et ne sont efficaces que pour un sous-ensemble de ceux-ci. Par conséquent, elles sont plutôt considérées comme des accélérateurs spécialisés: une application utilisatrice potentielle suivrait un flot d'exécution classique et déléguerait sélectivement certains traitements au QPU lorsque cela s'avèrerait bénéfique. Si les besoins paraissent similaires à la problématique rencontrée précédemment par l'adoption des processeurs graphiques (GPUs) pour le calcul généraliste, les spécificités des unités quantiques ne permettent pas de calquer simplement les approches adoptées pour les GPUs. Le temps de latence pour un traitement délocalisé sur QPU est très largement plus élevé que sur un accélérateur classique ou que pour une communication entre CPUs. Par ailleurs, cette latence est potentiellement variable en raison des erreurs inhérentes aux technologies de calcul quantique contemporaines. Enfin, les QPUs sont actuellement des plateformes distinctes et autonomes, avec un gestionnaire de jobs distinct de celui des plateformes de calcul classiques. Le modèle d'utilisation de ces QPUs est donc faiblement couplé et fortement asynchrone, ce qui rend leur intégration dans des applications difficile. Il est donc nécessaire de construire les modèles de programmation et d'exécution adaptés, permettant d'exprimer les traitements potentiellement délocalisables sur QPUs, d'estimer à l'exécution le bénéfice du déport d'un calcul sur une unité quantique par rapport à une alternative classique, et ainsi d'ordonnancer dynamiquement l'application sur une plateforme hybride classique+QPU, tout en absorbant les conséquences du fort découplage et en recouvrant de manière automatisée la latence élevée des QPUs par des traitements classiques. La finalité du stage est de définir, expérimenter et valider une première esquisses de ces modèles de programmation et d'exécution. Un déplacement à l'ÉTS est envisagé durant le stage, dans le cadre de cette collaboration.
Le support d'exécution à base de tâches StarPU possède la capacité d'effectuer l'ordonnancement de tâches issues d'applications de calcul intensif sur des unités de calcul hétérogènes: CPUs, FPGAs, GPUs. Les services qu'il propose permettent de modéliser les performances de tâches sur ces unités variées et ensuite de les ordonnancer sur les unités les plus appropriées, tout en assurant les transferts de données nécessaires de façon transparente. L'objectif du stage est d'utiliser StarPU comme fondation pour développer un modèle de programmation et un modèle d'exécution adaptés à l'intégration d'unités de type QPU parmi les ressources de calcul hétérogènes mises à disposition des applications de calcul intensif. Le défi sera la prise en compte efficace des spécificités des architectures quantiques dans cette entreprise, de manière à offrir une puissance de calcul agrégée accrue aux applications. Au-delà de l'efficacité, le défi est renforcé par la grande diversité des technologies de calcul intensif concurrentes. Cette diversité représente un risque pour les applications: optimiser une application pour un type de technologie représente un investissement de développement significatif, dont le fruit peut être perdu lors du passage à une technologie différente. L'enjeu sera donc de concevoir les modèles de programmation et d'exécution de façon à offrir la portabilité des performances aux applications cibles, c'est-à-dire leur permettre de fonctionner efficacement sur un assortiment de technologies quantiques, avec peu ou pas de modifications du code applicatif. Les modèles proposés seront testés tout d'abord en simulation, en s'appuyant sur les travaux de l'ÉTS basés sur le logiciel SimGrid, puis en expérimentés et validés en situation réelle sur des plateformes telles que celles proposées par Calcul Québec au Canada et GENCI en France.
Anglais courant, écrit et oral
Notions de programmation et d'utilisation de plateformes de calcul quantiques.