Comparaison de logiciels : Comparer la base logicielle de Cado-NFS avec les bonnes idées contenues dans les projets concurrents (msieve, lasieve, bwxl, yafu) dans le but d'en tirer le meilleur.
Analyse de changement d'échelle : Analyser comment le code peut être utilisé pour aborder des tailles de problèmes plus importantes, en prenant pour jalon majeur la taille RSA-1024.
Intégration et partage : Intégrer l'ensemble des réalisations dans la base de code publique de Cado-NFS sur la plate-forme GitLab.
Affinage des estimations de calcul : Affiner l'estimation du coût de calcul pour RSA-1024 afin que ce dernier puisse être réalisé exclusivement avec Cado-NFS.
Analyse et optimisation du crible : Analyser, réimplémenter et déterminer comment optimiser au mieux les algorithmes non documentés issus de la base de code lasieve pour l'étape de crible.
Mise en place de tests de performance : Établir des tests de régression de performance pour Cado-NFS et discuter de la méthode de présentation des résultats sur la non-régression de performance.
Exploration du potentiel sur GPU : Apporter une contribution aux travaux d'exploration concernant l'apport potentiel des GPU pour toutes les étapes de Cado-NFS (notamment l'étape de crible, la sélection polynomiale et l'algèbre linéaire creuse).
Optimisation HPC (optionnelle) : Selon les envies, approfondir l'adaptation de l'étape d'algèbre linéaire à un environnement HPC pour en maximiser la performance.
Mathématiques et algorithmique : Disposer de solides connaissances mathématiques et algorithmiques pour être à l'aise avec l'algorithme NFS.
Développement C++ : Posséder une capacité essentielle à comprendre et écrire du code C++20.
Lecture d'assembleur : Être capable de comprendre des routines écrites en assembleur x86-64 lorsque cela est nécessaire, avec l'utilisation possible d'outils dédiés comme Ghidra.
Outils de versioning : Être parfaitement à l'aise avec l'outil Git et la plate-forme GitLab.
Compétences complémentaires : Une bonne connaissance des environnements HPC ainsi que des GPU constitue un plus selon les axes explorés.
Équipe et localisation : Le travail s'effectue au sein de l'équipe Caramba du LORIA à Vandœuvre-lès-Nancy.
Encadrement : Le projet est placé sous l'encadrement d'Emmanuel Thomé.
Durée et calendrier : Le contrat a une durée de 11 mois, avec un début prévu en octobre 2026 (10/2026).
Environnement logiciel : Le projet porte sur Cado-NFS, un logiciel académique conséquent écrit principalement en C++, comprenant environ 300 000 lignes de code.
Ressources matérielles : Accès à des infrastructures de calcul de tailles variées, incluant notamment la plate-forme Grid5000 pour les tests HPC et GPU.
Présentiel : Le travail est attendu principalement en présentiel. Le télétravail reste possible mais uniquement dans le respect des cadres classiques du CNRS.
Complexité et lisibilité du code historique : L'examen de la base de code lasieve est rendu difficile par sa nature même et par le fait qu'elle contient des algorithmes décrits nulle part ailleurs.
Risques d'effets de bord de performance : Cado-NFS est un édifice logiciel complexe dans lequel une modification en apparence anodine ou positive pour certains paramètres peut provoquer un effet de bord néfaste, voire désastreux, dans d'autres contextes.
Difficulté technique : Le portage sur GPU présente des difficultés variables selon les étapes, le crible étant probablement l'étape la plus difficile à porter sur cette architecture.
environ 2000 net/mois
44 jours
Pratique et indemnisation du TT
Prise en charge à 75% du coût et forfait mobilité durable jusqu’à 300€
Référence de l’offre
UMR7503-EMMTHO-001
Secteur d’activité
Informatique, Statistiques et Calcul scientifique
Emploi type
Ingenieur en calcul scientifique (H/F)
Le CNRS est un acteur majeur de la recherche fondamentale à une échelle mondiale. Le CNRS est le seul organisme français actif dans tous les domaines scientifiques. Sa position unique de multi-spécialiste lui permet d’associer les différentes disciplines pour affronter les défis les plus importants du monde contemporain, en lien avec les acteurs du changement.
Le CNRS
Les métiers de la recherche