Depuis octobre 2015, je suis en thèse CIFRE. C'est un contrat entre un doctorant, une entreprise et un laboratoire. Je passe donc 3 jours chez Kalay, une entreprise qui conçoit et commercialise un processeur many-core. Un many-core est une puce (SoC) composée de plusieurs processeurs reliés par un réseau. Ainsi, deux jours par semaine, je suis chez Verimag, un laboratoire de recherche dont les sujets principaux sont la vérification de programme et les langages synchrones. C'est une courte introduction, mais je compte écrire un article pour détailler un peu ces notions.
Voici le début d'une série d'articles introduisant ma thèse. Je consacre le premier aux décisions qui m'ont conduites à la recherche.
Passage par le master recherche
J'ai été étudiant à l'Ensimag (Grenoble INP) pendant 3 ans, jusqu'à l'été 2015. Durant le second semestre de la 2ème année, j'ai consacré un après-midi par semaine chez Verimag à un stage recherche. Cette expérience m'a donné envie de m'inscrire en Master 2 recherche (M2R) en septembre 2014. Ensuite, j'ai passé l'été 2014 chez SAP à Walldorf (j'ai écris un article), ce n'était pas un stage recherche, mais très R&D quand même car je travaillais sur certaines instructions de l'Intel Xeon Phi (qui n'était alors pas encore commercialisé).
Septembre 2015. Le Master 2 recherche (M2R) s'appelle MoSIG, Master of Science in Informatics at Grenoble (notez le terme informatics, qui, je trouve actuellement plus juste que computer science, si vous avez 5 mn, réfléchissez-y sur votre vélo :-)). Il existe plusieurs filières, celle que j'ai choisi traite d'informatique embarquée, de programmation parallèle et de systèmes distribués. Les cours sont dispensés en anglais, ce qui nous épargne les phrases du type : « Ce handler catch l'exception du cache miss. », pour le bien de tous.
J'ai fait ce choix de « l'informatique embarquée » plusieurs fois : en DUT Informatique. En vérité, j'aime me situer à la limite entre l'électronique et l'informatique (j'ai aussi fait le choix bac STI Electronique pour atteindre l'informatique par le matériel). Cette proximité électronique/informatique est très présente, notamment en embarquée où le matériel a autant d'importance que le logiciel : pour la fiabilité des systèmes critiques, la réduction de la consommation pour réduire la chaleur ou optimiser les batteries et la robustesse.
Les 6 mois de cours ont été très intéressants bien qu'un peu déroutant au début. En effet, en école d'ingénieurs, j'avais été habitué à avoir des travaux pratiques dans toutes les matières. Le master s'est passé différemment, car les cours étaient là pour dresser l'état de l'art d'un domaine. Par exemple, les grands concepts et méthodes et les papiers fondateurs. Aussi improbable que ça puisse paraitre, sans le nommer, j'ai fait de l'histoire : l'informatique est déjà assez vieille (et a évoluées assez vite) pour avoir une histoire propre.
J'ai passé beaucoup de mon temps libre à lire des articles, pour approfondir les concepts et avoir des exemples. Le but de la formation est surtout d'avoir un sens critique sur les articles et de savoir les comparer. Finalement, le manque de travaux pratiques, déroutant au début, ne m'a pas gêné, cela m'a plutôt poussé à chercher par moi-même.
Chercher par moi-même, connaitre l'historique des choses, avoir un sens critique sur les articles. C'était le nécessaire pour appréhender le stage de recherche et plus tard, le doctorat.
Le stage recherche
Le stage recherche au laboratoire Verimag a été très différent de ce que j'imaginais : plus dur. Le sujet « vers la génération de code d'une langage synchrone sur un architecture many-core » paraissait très technique au premier abord. Aussi, je n'avais jamais programmé sur un processeur many-core, cependant, avec quelques jours passé à lire la documentation, j'ai pu apprendre à faire fonctionner mes premiers exemples. Ce sujet étant proche de celui de mon doctorat, je le décrirai plus en détail dans l'article sur mes recherches actuelles.
Les difficultés n'ont finalement pas été techniques, mais propres à la recherche.
J'ai dû comprendre le jargon du domaine. En effet, il y a beaucoup de notions à connaitre et à savoir exprimer. Il faut oublier les synonymes et la beauté de la langue ! Un mot est une notion précise qu'il faut apprendre. Parfois, ce qui semble être un synonyme crée un contre-sens et embrouille une discussion. Comme toujours, si on oublie l'art, la langue n'est qu'un outils.
Plus tard, nous avons assisté à une formation pour apprendre à mieux utiliser la puce. J'ai appris alors que l'entreprise avait justement besoin d'un doctorant pour travailler sur les usages embarqués critiques. C'est ainsi que j'ai commencé mon doctorat.