2019-01321 - Doctorant(e) F/H [Campagne AR 2019 - PhD Thesis] - Modular Green VM (F/M)

Type de contrat : CDD de la fonction publique

Niveau de diplôme exigé : Bac + 5 ou équivalent

Fonction : Doctorant

A propos du centre ou de la direction fonctionnelle

Le centre de recherche Inria Lille – Nord Europe, créé en 2008, compte 360 personnes dont 305 scientifiques répartis dans 16 équipes de recherche. Reconnu pour son implication forte dans le développement socio-économique sur le territoire du Nord – Pas-de-Calais, le centre de recherche Inria Lille – Nord Europe poursuit une démarche de proximité avec les grandes entreprises et les PME. En favorisant ainsi les synergies entre chercheurs et industriels, Inria participe au transfert de compétences et d’expertises dans les technologies numériques et donne accès aux meilleures recherches européennes et internationales au bénéfice de l’innovation et des entreprises notamment en région.

Contexte et atouts du poste

Inria, institut de recherche dédié au numérique, promeut  « l'excellence scientifique au service du transfert technologique et de la société ». Inria emploie 2700 collaborateurs issus des meilleures universités mondiales, qui relèvent les défis des sciences informatiques et mathématiques. Son modèle ouvert et agile lui permet d’explorer des voies originales avec ses partenaires industriels et académiques. Inria répond ainsi efficacement aux enjeux pluridisciplinaires et applicatifs de la transition numérique. Inria est à l'origine de nombreuses innovations créatrices de valeur et d’emplois.

Le centre de recherche Inria Lille – Nord Europe, créé en 2008, compte 360 personnes dont 305 scientifiques répartis dans 16 équipes de recherche. Reconnu pour son implication forte dans le développement socio-économique sur le territoire du Nord – Pas-de-Calais, le centre de recherche Inria Lille – Nord Europe poursuit une démarche de proximité avec les grandes entreprises et les PME. En favorisant ainsi les synergies entre chercheurs et industriels, Inria participe au transfert de compétences et d’expertises dans les technologies numériques et donne accès aux meilleures recherches européennes et internationales au bénéfice de l’innovation et des entreprises notamment en région.

Descriptif de l’équipe 

The goal of RMoD is to support ever running systems. This objective is tackled from two complementary perspectives: reengineering of large systems and constructs for dynamic reflective programming languages.

In the reengineering perspective we propose new analyses to understand and restructure existing large applications (specialized package metrics, adapted visualizations, layer identifications, automated migration) on top of Moose (an open-source reengineering platform) http://www.moosetechnology.org. We work on rule identification, validation. We created Synectique http://synectique.eu a company deploying tools that support software analyses.

In the construct context we are revisiting language concepts such as modules and composition. In addition we are working on new generation of reflective systems. These programming language constructs are experimented on Pharo http://www.pharo.org. We are developing Pharo a dynamically-typed and reflective pure object-oriented language. Pharo is used in several universities worldwide, by research groups and companies. http://consortium.pharo.org is an industrial consortium that supports Pharo.

Keywords:

dynamic languages, language design, reflective programming, security, Smalltalk, Pharo, reengineering, software analysis, program visualization, reverse engineering, meta modeling, moose.

 

*Ce projet est subventionné par la Région Hauts de France.

Mission confiée

Etude et developpement d'une machine virtuelle modulaire et green.

Principales activités

Étonnamment inconnues de leurs utilisateurs, les machines virtuelles sont partout : des téléphones, aux navigateurs Web ou encore aux grands serveurs. Elles sont omniprésentes dans de nombreuses sociétés et entreprises. Tout le monde utilise au moins plusieurs machines virtuelles par jour sans s'en rendre compte. Il est certain que les micro machines virtuelles équiperont tous les capteurs mesurant la consommation d'électricité et les appareils intelligents. Les utilisations des machines virtuelles vont de la production de calcul pour les micro-dispositifs, aux serveurs massifs utilisés dans les bourses et les systèmes d'information tels que les hôpitaux, les banques, ....

En outre, en Europe, il existe un nombre très limité de groupes de recherche ayant la capacité de développer des machines virtuelles alternatives (en fait, deux, une autour de PyPy et une autour de Truffle) - et même là, il n'est pas à exclure que Truffle sera probablement vendu par Oracle à moyen terme. Il est aussi possible de considérer LLVM qui est une autre tentative de fournir des composants génériques qui peuvent être utilisés pour construire des machines virtuelles.

De plus, en raison de cette concentration excessive de complexité d'ingénierie et de connaissances, la recherche et le développement en ingénierie des machines virtuelles se sont principalement concentrés sur des performances de plus en plus élevées (ainsi qu'en consommation électrique) au détriment de l'adaptabilité et de la consommation d'énergie. Il y a très peu de travaux sur les machines virtuelles qui consomment moins d'énergie et qui sont adaptables. La plupart des travaux connexes concernent VMWare ou Docker comme machines virtuelles, qui sont en fait des solutions de virtualisation. Ce n'est pas ce que nous visons dans ce travail, où nous nous concentrons sur les machines virtuelles à l'image de la JVM.

Sujet. L'objectif scientifique de ce projet est de construire et modifier des machines virtuelles de manière très flexible a toujours été un défi[1] car il soulève, en plus des préoccupations de développement/qualité, des questions de rétro-compatibilité et de migration langage/logiciel. Ces contraintes limitent considérablement les expérimentations et la production de machines virtuelles, surtout celles qui existent déjà, et elles posent les défis suivants :

  1. Pouvons-nous développer en peu de temps de nouvelles machines virtuelles ?
  2. Pouvons-nous aider au processus de construction de nouvelles fonctionnalités pour les machines virtuelles existantes et garantir leurs qualités ?
  3. Pouvons-nous fournir une infrastructure qui peut offrir une faible consommation d'énergie ou de mémoire ?


L'objectif de cette thèse est de revisiter l'infrastructure des Machines Virtuelles autour de la Machine Virtuelle Pharo existante et d’en proposer une version modulaire avec des composants et une architecture permettant aux développeurs d’applications de contrôler la consommation énergétique.

Le résultat est une architecture et une VM modulaire donc certains composants ont des caractéristiques de contrôle de la consommation énergétique.

 

Programme de travail

Plusieurs axes de recherche seront abordés :

  • L'étude d'approches alternatives comme Pypy (spécialement comme la machine virtuelle est plus flexible) ou Truffle.
  • L'étude de l'utilisation de RPython pour la génération de code C.
  • Revisiter les outils utilisés pour la construction des Machines Virtuelles (compiler, nativizer, debugger, ...).
  • Analyser la possibilité de créer des composants de Machines Virtuelles et de créer des familles de Machine Virtuelles [2, 3].
  • Proposer une architecture qui supporte la gestion de la consommation d'énergie.
  • L'analyse du compromis entre rapidité/consommation et des stratégies pour l'état idle.

 

Compétences

Compétences

  • Maîtriser Pharo
  • C, Assembleur, concurrence,
  • Pratiquer les tests unitaires
  • Utilisations Design Patterns (visitor….)

Qualités

  • Sens de l’organisation, autonomie, rigueur 
  • Goût du travail en équipe
  • Savoir écouter et communiquer avec des interlocuteurs non techniques ;
  • Savoir rédiger des notes / des rapports
  • Bonne connaissance de l'anglais

 

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement

Rémunération

Le salaire brut mensuel en 1ère et 2ème année est de 1982€ puis 2085€ en 3ème année.