Étude et optimisation du placement et de la synchronisation de fonctions de simulation distribuée sur infrastructure Kubernetes
| ABG-140262 | Master internship | 6 months | 560 EUR |
| 2026-09-18 |
- Computer science
Employer organisation
Website :
Le Laboratoire d'Informatique et d'Automatique pour les Systèmes (LIAS) est un laboratoire de recherche affilié à l’Université de Poitiers et à l’ISAE-ENSMA. Nos travaux de recherche, ancrés dans les fondements théoriques des mathématiques, de la théorie du signal, de l'informatique théorique et du génie électrique, sont à la frontière des Sciences et Technologies de l'Information et de la Communication (STIC) et des Sciences pour l'Ingénieur (SPI).
Le LIAS, composé de trois équipes aux expertises complémentaires, met en œuvre son savoir-faire pour aborder un large spectre d'applications. De la gestion de l'énergie au traitement des eaux, en passant par la modélisation informatique des systèmes complexes, la gestion des données et l’aide à la décision, la conception modulaire des systèmes embarqués et les dynamiques de population d'oiseaux, nos chercheurs apportent une réelle plus-value à ces domaines variés. Notre laboratoire se distingue par sa capacité à combiner des approches académiques pointues avec des applications concrètes pour relever les défis de demain.
Description
Contexte
Les simulations de systèmes complexes (systèmes cyber-physiques, jumeaux numériques, etc.) reposent fréquemment sur un ensemble de fonctions périodiques, potentiellement dotées d'un état interne (stateful) ou non (stateless), et s'exécutent de manière distribuée et communiquent en échangeant un grand nombre de variables (entrées/sorties). Pour concilier performance et cohérence temporelle, ces fonctions sont regroupées et affectées à des nœuds d'exécution. Chaque nœud exécute séquentiellement les fonctions qui lui sont assignées et fait progresser la simulation localement, jusqu'à un point de synchronisation où l'ensemble des nœuds échange les données produites/consommées et se resynchronisent.
Ce type d'architecture s'appuie sur un middleware de simulation qui assure à la fois le stockage local des données lues et écrites par les fonctions colocalisées (accessibles alors en mémoire partagée) ainsi que la sérialisation, le transfert réseau et la synchronisation des données lorsque les fonctions communicantes sont hébergées sur des nœuds distincts.
Dans ce contexte, le placement des fonctions sur les nœuds, tout comme leur ordonnancement local, constituent des leviers déterminants de l'efficacité globale de la simulation et de sa représentativité du procédé simulé. En effet, ces deux décisions déterminent directement l'équilibre entre calcul local et communication réseau. D'un côté, maximiser le parallélisme en isolant chaque fonction sur un nœud dédié réduit le temps de calcul local et facilite l'accès à des ressources spécifiques comme le GPU. Cette stratégie a cependant un coût : elle multiplie les synchronisations réseau, ce qui accroît la latence globale et sollicite davantage le plan de contrôle. À l'inverse, maximiser le regroupement en colocalisant sur un même nœud les fonctions fortement couplées permet de limiter ces synchronisations réseau grâce à l'exploitation de la mémoire partagée locale. Cette approche allonge mécaniquement le temps d'exécution séquentielle de chaque nœud et peut restreindre l'accès à certaines ressources spécialisées.
Il existe donc un compromis à arbitrer entre granularité du parallélisme et surcoût de synchronisation, dépendant du graphe de dépendances des fonctions (qui lit/écrit quoi), de leur coût de calcul, du volume de données échangées, et de la topologie/latence du réseau sous-jacent.
Objectifs du stage
L'objectif de ce stage est d'étudier comment transposer ce modèle d'exécution sur une infrastructure basée sur Kubernetes, où chaque fonction serait déployée comme un ou plusieurs Pods (unité atomique correspondant généralement à un conteneur), avec :
- un mécanisme d'échange de données adapté (mémoire partagée intra-pod versus communication réseau inter-pods/inter-nœuds)
- une stratégie de placement des pods (affinité/anti-affinité) reflétant les décisions de partitionnement des fonctions ;
- un mécanisme de synchronisation périodique entre pods, s'appuyant potentiellement sur les primitives Kubernetes natives (Services, ConfigMaps) ou sur un intergiciel additionnel déployé au sein du cluster.
Profile
Le candidat doit être en Master 2 en Informatique ou en dernière année de préparation d'un diplôme d'ingénieur spécialité Informatique et doit disposer de bonnes connaissances en systèmes distribués, réseaux et Kubernetes/conteneurisation.
Starting date
Vous avez déjà un compte ?
Nouvel utilisateur ?
Get ABG’s monthly newsletters including news, job offers, grants & fellowships and a selection of relevant events…
Discover our members
ONERA - The French Aerospace Lab
Ifremer
Groupe AFNOR - Association française de normalisation
SUEZ
Nantes Université
Généthon
Nokia Bell Labs France
TotalEnergies
Aérocentre, Pôle d'excellence régional
ANRT
Tecknowmetrix
Medicen Paris Region
Laboratoire National de Métrologie et d'Essais - LNE
ASNR - Autorité de sûreté nucléaire et de radioprotection - Siège
Servier
Institut Sup'biotech de Paris
ADEME






