Job Specifications
EOS est un outil de calcul scientifique (OCS) d’équations d’état, utilisé par plusieurs codes de thermo-hydraulique et de mécanique des fluides (NeptuneCFD, CATHARE, TRUST, TrioCFD, FLICA, …) pour déterminer les propriétés thermodynamiques de fluides mono- et diphasiques à partir de couples de variables tels que (pression, température), (pression, enthalpie), etc.
Développé en C++ et complété par des scripts bash/python, le code est devenu open-source en 2023 (version 2.0.0). Sa grande modularité constitue un atout, mais son architecture, aujourd’hui vieillissante, entraîne une consommation importante de ressources de calcul. Une première étude de performance a déjà permis un gain d’environ 40 % de temps de calcul sur certaines tables dans la version 2.1, tout en mettant en évidence plusieurs points faibles impactant les performances globales.
Le stage proposé consistera à analyser ces limitations, à apporter des corrections ciblées et à poursuivre l’étude de performance afin d’améliorer la rapidité et l’efficacité du code.
Objectif du stage:
Concevoir, prototyper et valider des améliorations d’architecture C++ et de gestion de la mémoire afin de réduire le temps de calcul d’EOS, sans compromettre la précision ni la modularité de l’API. Les efforts porteront sur l’optimisation des accès mémoire et des sections de code critiques mises en évidence par des études de performance sur des cas de référence.
Pistes techniques d’amélioration:
Architecture du code en C++
Mieux séparer les parties du code : d’un côté les modèles physiques (équations d’état), de l’autre les tables et structures de données.
Réduire les dépendances entre modules pour que les modifications n’obligent pas à tout recompiler.
Moderniser les interfaces pour qu’elles soient plus simples à utiliser et plus stables dans le temps
Gestion de la mémoire
Améliorer l’organisation des données pour qu’elles soient utilisées plus efficacement par le processeur
Limiter le nombre d’allocations mémoire répétées en réutilisant des zones de mémoire déjà réservées.
Polymorphisme et performance
Remplacer certaines utilisations lourdes du “polymorphisme dynamique” (héritage + fonctions virtuelles) par des solutions plus légères lorsque les choix peuvent être connus à la compilation. Cela permettrait de réduire les appels indirects et de faciliter l’optimisation automatique du code par le compilateur.
Moyens / Méthodes / Logiciels
C++
Profil du candidat
Compétences recherchées
Solides bases en C++, structures de données, profiling et optimisation.
Connaissances en numérique/thermodynamique appréciées.
Culture ingénierie logicielle (tests, CI, doc).
'@De votre côté,vous cherchez une entreprise :
Qui développe vos compétences et construit votre parcours professionnel
Qui donne une possibilité d'être en télétravail
Qui prône la mixité et la diversité
Qui est acteur majeur de la recherche dans le nucléaire
Le CEA est un acteur engagé dans l’accueil, l’insertion et le maintien dans l’emploi des salariés en situation de handicap. Ainsi, si vous le souhaitez, vous pouvez également joindre tous documents justifiants de votre situation de handicap (RQTH, carte mobilité inclusion, pension d’invalidité, etc).
Localisation du poste Site
Saclay
Localisation du poste
France, Ile-de-France, Essonne (91)
Ville
Saclay / Gif-sur-yvette
Critères candidat Langues
Français (Courant)
Diplôme préparé
Bac+5 - Diplôme École d'ingénieurs
Formation recommandée
Étudiant(e) en école d'ingénieurs ou en Master 2 (bac +5)
Possibilité de poursuite en thèse
Non
Demandeur Disponibilité du poste
01/03/2026
About the Company
The CEA is the French Alternative Energies and Atomic Energy Commission ("Commissariat à l'énergie atomique et aux énergies alternatives"). It is a public body established in October 1945 by General de Gaulle. A leader in research, development and innovation, the CEA mission statement has two main objectives: To become the leading technological research organization in Europe and to ensure that the nuclear deterrent remains effective in the future.
The CEA is active in four main areas: low-carbon energies, defense and secur...
Know more