Optimisation d’algorithmes de traitements des données expérimentales de fusion H/F

Optimisation d’algorithmes de traitements des données expérimentales de fusion H/F

Stage
Bouches du Rhône (13)
27 janvier 2025
3 février 2025
6 mois
2024-34430

Description du poste

Sujet de stage

« Les algorithmes de traitement des données sont essentiels pour l’analyse des expérimentations sur le tokamak WEST (IRFM/CEA). Ces algorithmes permettent de combiner des informations provenant de diverses sources (capteurs, bases de données, etc.) dans le but de mieux comprendre les phénomènes physiques impliqués dans les plasmas de fusion. Cependant, ces solutions sont souvent développées dans des environnements propriétaires, ce qui peut limiter leur extensibilité, leur interopérabilité et leur coût d’utilisation à long terme et sont parfois surannées.
Dans cette optique, le passage d’algorithmes propriétaires à des langages et environnements libres en utilisant des méthodes et des algorithmes actuels est un enjeu stratégique. Cela permet non seulement de s’affranchir des coûts de licences, mais aussi de bénéficier d’une communauté open-source active et d’un écosystème de développement plus flexible. »

Description de l’offre

Objectifs du stage :

  • Étudier les algorithmes existants : Analyse des algorithmes de traitement des données de fusion actuellement implémentés dans un langage propriétaire (comme MATLAB ou IDL) et identifier les fonctionnalités clés à migrer.
  • Choisir le langage libre approprié : Évaluer et sélectionner un langage open-source (tel que Python, Julia ou R) en fonction de critères tels que la performance, la simplicité de portage, la compatibilité avec les bibliothèques nécessaires, et l’optimisation des performances.
  • Portage des algorithmes : Réaliser la migration des algorithmes du langage propriétaire vers le nouveau langage open-source. Il s’agit non seulement de traduire le code, mais aussi d’adapter les structures de données, les bibliothèques mathématiques et les paradigmes de programmation. L’objectif est ce conserver les différentes fonctionnalités données par les chercheurs diagnosticiens.
  • Optimisation des performances : Après le portage, procéder à une optimisation des algorithmes pour garantir une exécution rapide et efficace. Cela inclut l’utilisation de bibliothèques optimisées pour le calcul scientifique (comme NumPy, SciPy, Pandas pour Python) et la parallélisation des tâches si nécessaire.
  • Tests et validation : Mettre en place des tests comparatifs pour valider les résultats des nouveaux algorithmes en les confrontant aux solutions propriétaires. S’assurer que les performances et les résultats des nouveaux algorithmes sont équivalents ou supérieurs à ceux des versions propriétaires.

Tâches du stagiaire :

  • Phase de découverte : Comprendre les algorithmes propriétaires actuels et leur environnement d’exécution.
  • Phase de conception : Participer à l’évaluation et à la sélection des langages et bibliothèques libres les plus adaptés.
  • Phase de développement : Porter les algorithmes du langage propriétaire vers un langage libre, en s’assurant de la compatibilité et de la robustesse des nouvelles implémentations.
  • Phase de validation : Effectuer des tests unitaires et fonctionnels pour comparer les résultats des algorithmes migrés avec ceux des solutions propriétaires.
  • Documentation : Rédiger une documentation claire sur le processus de migration, les outils utilisés et les méthodes d’optimisation.

Profil du candidat

Compétences Requises :

  • Langages de programmation : Bonne maîtrise d’au moins un langage propriétaire (MATLAB, IDL, etc.) et d’un langage libre (Python, Julia, R, etc.).
  • Traitement des données : Connaissances en algorithmes de traitement de données, particulièrement dans le contexte des données de fusion.
  • Optimisation d’algorithmes : Connaissance des techniques d’optimisation des algorithmes (profiling, parallélisation, réduction de complexité).
  • Outils scientifiques : Expérience avec les bibliothèques de calcul scientifique (NumPy, SciPy, Pandas) et les environnements de développement collaboratifs (Git, Jupyter).

Profil Recherché :

Étudiant(e) en dernière année d’école d’ingénieur ou en Master 2 avec une spécialisation en informatique, mathématiques appliquées, ou traitement de données.
Autonomie, rigueur et capacité à résoudre des problèmes complexes.
Intérêt pour le logiciel libre et l’open source.

Localisation du poste

Site

Cadarache

Localisation du poste

France, Provence-Côte d’Azur, Bouches du Rhône (13)

Ville

St Paul Lez Durance

Critères candidat

Langues

Anglais (Courant)

Formation recommandée

informatique, mathématiques appliquées, ou traitement de données.

Possibilité de poursuite en thèse

Non