Thèmes de rechercheJe m'intéresse de manière générale aux problématiques liées au calcul haute-performance (HPC) et aux applications distribuées (Big Data ou Cloud Computing par exemple). Je me concentre en particulier sur l'aspect ordonnancement de ces thématiques, plus particulièrement les ordonnancements statiques (calculés en amont) basés sur des modélisations. Au cours de ma carrière je me suis concentré sur plusieurs problèmes spécifiques. |
Collaborateurs : Shadi Ibrahim (Inria Rennes, IRISA) et Jad Darrous (Talend).
Publication liée : ICCCN 2019.
Le "Edge Computing" est un paradigme d'informatique parallèle émergent qui vise à étendre le "Cloud Computing" en déplaçant une partie des calculs en dehors des centres de données pour les rapprocher des sources de données ou des utilisateurs finaux. Afin de remplir les objectifs initiaux, notamment en terme de réduction de la latence, il est crucial de minimiser les temps de déploiement des services dans de tels environnements. Pour fonctionner, de nombreuses applications reposent sur la virtualisation. Or la récupération d'images virtuelles peut être un facteur important de retard, d'autant plus si ces images sont récupérées depuis un centre de données lointain. Pour résoudre ce problème, nous nous sommes intéressés au placement d'un ensemble d'images virtuelles directement sur un réseau de type "Edge", afin d'obtenir des délais plus faibles et plus prévisibles lors de la récupération d'une image par un nœud. Nous sommes, à ma connaissance, les premiers à nous intéresser à cette approche. Afin de résoudre ce problème, nous avons dû prendre en compte plusieurs contraintes : i) l'hétérogénéité des bandes-passantes entre les différends nœuds du réseau ; ii) les contraintes de stockage (on ne peut pas simplement dupliquer l'ensemble des images sur chaque noeud) ; iii) la nécessaire réplication des images pour des raisons de résilience (éviter la perte de données si un nœud tombe en panne). Nous avons aussi considéré la structure particulière des images de type "conteneur" qui sont constituées de plusieurs couches (divers logiciels ou bases de données) pouvant être partagées par plusieurs images. Dans un premier temps nous nous sommes intéressés au placement de ces couches en utilisant le problème du k-centre (problème où il faut choisir k sommets sur un graphe de façon à minimiser la distance maximal entre n'importe quel sommet et le sommet le plus proche appartenant à l'ensemble choisi). Notre solution, KCBP (K-Center-Based Placement) consiste donc en l'application pour chaque couche (triées par tailles décroissantes) d'un solveur du k-centre (où k nombre de répliques de chaque couche), en retirant à chaque fois les nœuds n'ayant plus assez d'espace de stockage. Nous avons aussi proposé une variante, KCBP-WC (KCBP-Without Conflicts) qui évite, si possible, le placement de couches partageant une image sur les même nœuds. L'idée derrière cette variante est de permettre le téléchargement en parallèle de ces couches lors de la récupération de l'image complète. Nous avons évalués ces solutions grâce à des simulations se basant sur un ensemble réel d'images virtuelles, ainsi que sur des réseaux existants ou générés. Nous avons montré que ces approches, plus particulièrement KCBP-WC, améliorent significativement le temps de récupération par rapport à l'état de l'art (de 1.1 à 4 fois moins). Nous sommes actuellement en train d'étendre ces travaux dans deux directions. Tout d'abord nous nous intéressons aux stratégies de récupération des différentes couches (quelles copies doivent être privilégiée en fonction du placement et des bandes-passantes), en complément de l'approche précédente. Deuxièmement nous avons noté qu'une image donnée est souvent téléchargée par un petit nombre de nœuds. Nous proposons donc d'utiliser ces informations afin d'améliorer les précédents placements en donnant à chaque image un ensemble de "cibles" à privilégier.
Adapted from a template by FreeHTML5.co