L’objectif principal de ce stage est d’expérimenter différentes combinaisons d’optimisations en C++ afin d’améliorer les performances globales de notre solution. Vous travaillerez sur une librairie interne complexe basée sur des calculs de nombres flottants. Les calculs réalisés s’appliquant généralement à des gros volumes de données, chaque gain a un impact considérable sur les performances finales.
Vous intégrez une équipe à taille humaine, et vous serez accompagné(e) par des experts du domaine qui vous assisteront tout au long du stage.
Le stage demandera d’utiliser des outils de profiling de code pour mesurer les bénéfices de certaines techniques (multithreads, SIMD). Vous mènerez une étude comparative des avantages/inconvénients de différentes approches étayée par des benchmarks. Les évolutions que vous apporterez sur notre code devront toujours être couvertes par les tests appropriés.
Passionné(e) de C/C++, vous avez des notions de HPC, des connaissances sur SIMD et/ou OpenMP sont un plus.
Vous êtes curieux / curieuse, autonome et rigoureux, et pouvez être force de proposition pour expérimenter et mettre en place des améliorations.
Vous avez des bases mathématiques suffisantes pour appréhender des calculs complexes et avez des notions de bas niveaux (gestion de la mémoire, cache…).
Vous souhaitez vous former sur des fonctionnalités avancées du C++ pour maximiser les performances d’un programme.
Linux/Ubuntu
CMake
C/C++
Binding python pybind11
Docker
1 entretien technique et 1 entretien savoir-être dont au moins l’un des 2 en présentiel
Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.