About the position
Context
Contexte
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.
Assignment
Mission
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.
Main activities
Principales activités
Définition et implémentation de modèles de programmation et d'exécution pour plateformes Calcul Intensif + Quantique.
Définition de stratégies d'ordonnancements hybrides.
Expérimentations et analyse en simulation.
Modélisation des performances et mise en œuvre de la portabilité des performances.
Expérimentations et analyse sur plateformes hybrides réelles.
Activités complémentaires
Participation active à une collaboration internationale
Communication scientifique et présentations des travaux et résultats
Coopération et intégration avec les travaux des autres participants au projet.
Skills
Compétences techniques et niveau requis
Maîtrise du developpement en langage C, en environnement Unix.
Maîtrise de la programmation parallèle et distribuée.
Notions d'optimisation, ordonnancement, et d'évaluation de performances.
Expérience pratique de l'utilisation de plateformes de calcul intensif.
Expérience pratique en programmation d'accélérateurs / GPU.
Langues
Anglais courant, écrit et oral
Compétences relationnelles
Capacité de travail en équipe
Capacité de prise en compte et de proposition de suggestions
Ponctualité
Compétences additionnelles appréciées
Notions de programmation et d'utilisation de plateformes de calcul quantiques.
This listing was collected from a public source and is reproduced here for
information only. Always confirm the details on the original posting before applying.
View the original posting