Contexte
Les infrastructures de calcul dédiées au calcul intensif sont généralement partagées entre plusieurs utilisateurs. Chaque utilisateur peut y exécuter les charges de travail dont il a besoin pour son activité. Les charges de travail peuvent être de différentes natures et avoir des besoins en termes de ressources de calcul très différents. Afin d’utiliser au mieux les ressources partagées, un système dit d’orchestration a la charge de la gestion de l’infrastructure et de la planification de l’exécution des charges de travail. Un tel système prend en compte les contraintes de chaque charge de travail (type de hardware requis, dépendances avec d’autres charges de travail, licences, etc) et ordonnance l’exécution de sorte à maximiser une ou plusieurs métriques (temps d’exécution, énergie consommée, etc).
La programmation par tâches est un modèle de programmation qui décompose une charge de travail en une série de petites tâches dépendantes les unes des autres. Un programme décrit de la sorte peut être représenté sous la forme d’un graphe de tâches. Avec des charges de travail de ce type, le système d’ordonnancement peut jouer un rôle encore plus avancé en prenant en charge les exécutions concurrentes des différentes applications.
Au cours des 10 dernières années, Aneo a contribué à l’élaboration et l’amélioration de nombreux systèmes d’orchestration de graphes de tâches. L’expérience acquise a conduit au développement du projet ArmoniK. Ce projet vise à fournir une plateforme serverless d’orchestration de graphes de tâches performante et très flexible.
Description
ArmoniK est une plateforme dite « cloud-native » c’est-à-dire qu’elle est conçue pour exploiter les capacités des environnements cloud. L’une des propriétés intéressantes de ces environnements est la capacité de gérer dynamiquement les ressources de calcul à disposition. Ainsi, il est possible à l’exécution de demander davantage de ressources de calcul lorsque cela est nécessaire et inversement de relâcher une part des ressources lorsqu’elles ne sont pas utilisées. Ce concept est appelé l’élasticité et permet d’optimiser les coûts en utilisant uniquement les ressources de calcul nécessaires.
ArmoniK dispose déjà des composants logiciels permettant d’acquérir ou de relâcher des ressources à la demande. En revanche, la mise en place de l’élasticité requiert l’élaboration d’un composant logiciel capable de déterminer quand des ressources supplémentaires sont nécessaires et vice versa. L’élaboration d’une telle stratégie ainsi que son implémentation représente un défi.
Des travaux préliminaires ont permis d’aboutir à l’élaboration d’un modèle mathématique décrivant une stratégie de mise à l’échelle automatique balançant la performance et le coût. Il reste cependant à éprouver ce modèle face aux contraintes du réel. Ce travail doit permettre de valider le modèle en question, de l’améliorer si nécessaire, en vue de son implémentation future au sein d’ArmoniK. L’approche visée pour ce travail est d’implémenter un code de simulation d’ArmoniK et de son environnement cloud et d’y insérer le modèle. Ce code pourra ensuite être utilisé pour évaluer les performances de la stratégie de mise à l’échelle automatique face à des scénarios types (des graphes de tâches caractéristiques des charges de travail exécutées sur ArmoniK). Selon les résultats obtenus, plusieurs pistes sont alors envisageables :
* travailler à perfectionner le modèle ;
* travailler à une première implémentation du modèle dans ArmoniK.
Les missions ou attendus à la fin du stage
* Code de simulation d’ArmoniK et de son environnement d’exécution.
* Rapport d’évaluation des performances du modèle de mise à l’échelle automatique.
* (Optionnel) Implémentation du composant logiciel d’ArmoniK dédié à la mise à l’échelle automatique.
* (Optionnel) État de l’art des approches de conception de système de mise à l’échelle automatique.
* Documenter votre travail et contribuer à l'amélioration de la documentation existante.
* Bonne connaissance de la programmation orientée objet en Python ou en C++.
* De bonnes connaissances en mathématiques.
* Des bases sur les bonnes pratiques de développement (Git, tests unitaires, CI/CD, etc).
* Des bases en programmation en C# sont un plus.
* Un esprit d’initiative et une bonne capacité à travailler en autonomie.
Notes complémentaires :
Selon le profil du candidat et son intérêt, il est possible d’orienter le sujet vers une problématique de recherche. Cela intégrerait, en plus du travail précédemment décrit, une recherche bibliographique afin d’évaluer l’originalité de l’approche adoptée vis-à-vis de l’état de l’art. Les conclusions de l’étude associées aux résultats de simulation pourraient alors faire l’objet d’une soumission d’article dans une conférence ou un workshop dédié à cette thématique.
Pourquoi nous rejoindre ?
Une expérience enrichissante : Vous aurez l'opportunité de travailler sur des projets à fort impact dans les domaines du calcul dans le Cloud et de la bioinformatique.
Un environnement stimulant : Vous intégrerez une équipe dynamique et passionnée, composée d'experts en développement logiciel et en infrastructure Cloud.
Des perspectives d'avenir : Ce stage pourra déboucher sur un emploi au sein de notre entreprise.
Informations pratiques :
* Stage basé à Boulogne Billancourt
* Durée du stage : 6 mois minimum
* Démarrage : 1er semestre 2025
* Niveau d’étude : Master 2
* Télétravail : après 3 mois d'ancienneté (voir conditions de notre charte)
* Gratification stage : 1300 euros par mois
Parcours de recrutement : 1er échange RH (30 min) / 2ᵉ échange technique avec Quentin (1h)
À PROPOS D'ANEO
Aneo est une agence de conseil fondée en 2002, qui accompagne ses clients (entreprises du CAC 40, start-ups, scale-up et ETI) dans leur transformation digitale. Une agence hybride entre le conseil en organisation et management et le conseil en technologie. Aneo aborde les sujets de transformation dans leur globalité.
La Responsabilité Sociétale de l'Entreprise (RSE) est au cœur de notre culture d'engagement humain et social. Notre démarche d'amélioration continue a été reconnue par la certification Ecovadis Gold, et nous avons engagé un plan d’action vers la certification B-Corp.
La formation constitue un axe important du développement d'ANEO: plus de 4% de notre masse salariale y est dédiée ! Que cela soit pour les formations internes ou pour des formations plus approfondies menant à des certifications. Des conférences régulières avec des experts et chercheurs issus de divers horizons permettent par ailleurs de suivre les avancées au plus près. Aneo s'engage également activement dans diverses actions visant à transmettre notre expérience au travers de l’enseignement et d’intervention en école : CentraleSupelec, Université Paris-Saclay, ITSY, ISEP…), accueil de professeurs de lycée, etc.
Notre culture d'entreprise est fondée sur la responsabilisation des collaborateurs, la promotion d'un équilibre entre vie professionnelle et personnelle, ainsi qu'une structure organisationnelle aplatie visant à encourager l'autonomie. Nous organisons et participons régulièrement à des événements (privés, publics).
Une bonne ambiance de travail et une vie interne riche portée par des évènements transverses (soirées Off²), nos communautés et nos clubs (escalade, volley-ball, mixologie, jeux-vidéo, échec, jeux de société, œnologie).
Aneo s’inscrit dans une démarche d’égalité, de diversité et d’inclusion. Tous nos postes sont ouverts aux personnes en situation de handicap.
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.