Perso : Une catégorie Perso où je ne parle pas forcément de moi ?

Du régulateur de James Watt à ma thèse

« Sinon, tu travailles sur quoi exactement ? »

J'aime bien cette question, savoir que quelqu'un s'intéresse à mon travail est très gratifiant, pourtant, je la redoute : comment vulgariser suffisamment sans trop simplifier, ou comment donner assez de détails sans se perdre dans des périphrases incompréhensibles.

L'exercice est périlleux, alors je me lance.

Du régulateur de James Watt à ma thèse.

Un peu d'histoire

Pour réguler automatiquement la vitesse de sa machine a vapeur et ainsi avoir une vitesse la plus constante possible, James Watt (1), a inventé un système très ingénieux : il fixa à une tige, entrainée par la machine, deux boules en métal au bout de bras. Ainsi, plus la tige va vite, plus les deux boules s'écartent. Les bras maintenant les boules étant reliés au robinet d'alimentation en vapeur, la hauteur des boules fait varier l'arrivée en vapeur : la vitesse agit sur l'arrivée de vapeur, il y a rétroaction.

Le régulateur à boule de James Watt. Vue d'artiste très talentueux.
Le régulateur à boules de James Watt.

Aujourd'hui, cette science de la régulation (ou contrôle) s'appelle l'automatique. On parler alors d'actionneur (le robinet), de capteur (les deux boules en métal pour capter la vitesse) et une boucle de rétroaction : la machine a vapeur qui fait varier sa vitesse en fonction du débit de vapeur.

Bien sûr, les systèmes entièrement mécaniques sont rares et l'invention de l'électronique, puis de l'informatique ont permis des systèmes beaucoup plus complexes et performants. Il existe donc des programmes (logiciels) de contrôle.

(1) Cet exemple vient de l'article From Control Loops to Real-Time Programs de Paul Caspi and Oded Maler (Verimag-CNRS, 2005).

Les systèmes critiques, temps réel dur

Certains systèmes contrôlés sont très critiques : un fonctionnement anormal peut avoir des conséquences graves (humaines, écologiques, etc). Les exemples souvent cités sont les commandes de vol d'un avion, ou les systèmes de sécurité d'une centrale nucléaire, mais aussi dans les voitures (que dire de la voiture « autonome » ?).

Dans le cas d'un avion, les actionneurs sont les ailerons et les élévateurs de l'avion, des capteurs mesurent l'altitude, ou les commandes du pilote par exemple. Entre ces capteurs et ces actionneurs, il n'y a plus de systèmes à boules, mais un ordinateur qui calcule la position des actionneurs en fonction de la valeur des capteurs (après numérisation) : la position de l'élévateur, en fonction des entrées.

Une caractéristique de ces systèmes critiques est que le temps fait partie intégrante du cahier des charges : on imagine difficilement le système de contrôle demander au pilote d'attendre la fin du chargement pour rétablir la trajectoire de l'aéronef (!) ou que l'altitude de l'avion soit momentanément traitée 10 secondes plus tard.

Les langages synchrones

Peu après 1989, le besoin d'avoir un langage permettant de rendre le développement de programmes de contrôle plus facile s'est fait sentir. Il fallait un langage pouvant être compris par les automaticiens et qui intègre une notion de temps pour faciliter le développement de tels programmes.

Entre 1991 et 1992, trois langages sont apparus : Lustre, Signal et Esterel.

« Bien. Et donc, tu travailles sur quoi exactement ? »

Les langages synchrones sont très utilisés actuellement pour la programmation de systèmes de contrôle. Cependant, pour rendre les systèmes plus performants, plus confortables, plus complets, etc, ces programmes se complexifient.

Depuis une dizaine d'années, les processeurs arrivent à leurs limites : il n'est plus possible d'augmenter la performance sans augmenter énormément la consommation. Ainsi, sont apparus les processeurs multi-cœurs (contenant plusieurs processeurs) offrant de meilleurs performances pour une consommation moindre.

Cependant, ces processeurs récents sont très complexes et rendent les temps de calculs très difficiles à prévoir (certains comportements sont même aléatoires) : alors que justement, le temps est très important pour le contrôle !

L'entreprise Kalray conçoit un processeur many-cœurs qui permet de prévoir (de manière pas trop pessimiste) ces temps de calcul.

Mon sujet de thèse est donc : comment faire tourner ces programmes de contrôle sur le Kalray MPPA.

Vers le doctorat

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.

Stage chez SAP Walldorf (Allemagne)

Lors d'un salon à l'Ensimag, j'ai eu l'occasion de rencontrer un doctorant qui m'a proposé ce stage : 3 mois en Allemagne, avec un sujet de stage très intéressant. Je donne dans cet article mes impressions et ce que je retiendrai de ce stage.

Vie d'entreprise

SAP n'a rien à envier aux grandes entreprises américaines. C'est sans doute ma première impression lorsque je suis arrivé à SAP. Je ne parle pas ici de la puissance de l'entreprise (qui n'est plus à montrer), mais du confort des employés. SAP se veut très pratique pour eux : cantines haut de gamme gratuites pour tous les employés (et les stagiaires). La salle de billard, les terrains de sport, la salle de sport. Je n'y suis jamais allé, mais il y aurait aussi une salle de sieste. J'ai cependant joué plusieurs fois au volley avec d'autres employés. Dans l'action chacun parle sa langue, ainsi on entendait des "aus", des "out" et quelques "dehors" !

J'ai aussi eu la chance d'aller au Summer Summit SAP qui a lieu (environ) tous les 2 ans et qui ressemble à une immanence fête foraine gratuite pour les employés et leur famille.

Le Kuchen. Un rituel qui n'est pas propre à SAP, mais à la culture allemande : les employés font un gâteau pour les évènements importants : départ d'un employé (définitif, congé paternité ou maternité, etc), fin de stage.

Research seminar

Chaque mercredi, un étudiant (ou un employé) présente son travail. Par exemple cette semaine, j'ai assisté à la présentation d'un papier qui sera présentée à VLDB, une grande conférence sur les bases de données. J'ai aussi dû présenter mon travail.

Environnement anglophone

Bien que les courriels soient la plupart du temps envoyés en allemand et en anglais, il est possible de travailler uniquement en anglais. À défaut d'apprendre quelques mots allemands, j'ai pu améliorer mon anglais ! J'ai aussi été impressionné par le nombre de personnes que j'ai rencontré qui parle français... et très bien !

La magie de la langue anglaise c'est qu'elle m'a permis de rencontrer beaucoup d'autres stagiaires de tous les continents, avec qui nous avons beaucoup discuté dans le bus, dans le train, à la croisée des couloirs, à la cantine, et en sortie le weekend. J'ai rencontré aussi d'autres français.

En conclusion, j'ai beaucoup apprécié ce stage. J'ai pu un peu visiter l'Allemagne. J'ai toujours eu une petite réticence à travailler pour une grande entreprise. Cette expérience a été très positive, pour les points cités dans cet article mais aussi au niveau technique et sur le fonctionnement des grandes entreprises. Ainsi, comme de plus en plus de gens, je vous conseille vivement de faire un stage à l'étranger, si vous en avez l'occasion. Encore une occasion d'apprendre !

Théâtre : Une tournée, une vraie.

Imaginez-vous, un jeudi à 13h, dans un petit village de la Drôme (Sud-Est). Il ne faisait pas très chaud, le temps semblait alors idéal pour faire les 6h de route qui nous séparaient de l'Indre-et-Loire (Nord-Ouest). Sur le trajet nous étions huit membres de La Chaumière d'EDGUAR, une récente (mais pas sans expérience) association théâtrale, qui interprète Les souvenirs se font la malle.

Montrésor, vue du rempart du château
Montrésor, vue du rampart du château. (Crédit : Nathan)

Nous sommes arrivés, assez tôt à Montrésor, c'était la seconde fois que je m'y rendais. J'aime beaucoup cette ville, son historique, son architecture. Le vendredi matin nous avons pu visiter l'église et le château.
À 14 nous avons garé le camion devant la salle des fêtes d'Orbigny, après 3h d'installation et quelques tours de tarots les premières personnes arrivent. Ça fait plaisir de savoir qu'il y a du monde, alors que le spectacle n'est pas connu dans la région. Très vite, on entend les rires, les applaudissements.

Je n'avais jamais imaginé faire un jour une tournée, une vraie : une loin.
Je découvre tout les ans de nouvelles salles des fêtes avec La Chaumière d'EDGUAR et Le petit théâtre des Mathurins et j'avais déjà fait 3 jours de spectacle de suite, mais jamais dans 3 salles différentes. Nous avons dû déplacer une scène, faire des choix, trouver des solutions dans des lieux inconnus et très différents : des salles des fêtes et un château (à Orbigny, Loché-sur-Indrois et Chemillé-sur-Indrois). C'était de l'adaptation, de la vraie.

Nous avons rencontré plein de monde. Mise à part la fatigue, tout était génial : autant à l'Indrois qu'à l'inverse.

Ma rencontre avec la mascotte de linux !

Encore une fois, j'ai trouvé le moyen de faire un titre "attirant" pour les Geeks. Pourtant c'était bien journée en chair et en os (ou plutôt en temps et en vie) durant laquelle nous nous sommes envolés vers Villars-les-Dombes (01). Une ville qui abrite un magnifique Parc des Oiseaux. Je ne saurais vous dire le nombre d'espèces présentes sur le site, mais la superficie et la richesse sont impressionnantes.

Linux manchot
Manchot sous l'eau