Emilio de Camargo Francesquini - Dealing with actor runtime environments on hierarchical shared memory multi-core platforms

12:00
Vendredi
16
Mai
2014
Organisé par : 

Emilio de Camargo Francesquini

Intervenant : 

Emilio de Camargo Francesquini

Équipes : 

- Lieu de soutenance : Université de São Paulo, Brésil (Auditório do CCSL IME-USP, Rua do Matão, 1010. São Paulo)

- Jury :

  • M. Philippe O. A. Navaux, Professeur à l’Universidade Federal do Rio Grande do Sul (UFRGS), Président
  • M. Jean-Pierre Briot, Directeur de Recherche à CNRS Brésil, Rapporteur
  • M. Jomi Fred Hübner, Professeur à l’Universidade Federal de Santa Catarina (UFSC),Rapporteur
  • Mme. Laura M. C. Souto, Professeur à l’Universidade da Coruña, Examinatrice
  • M. Jean-François Méhaut, Professeur à l’Université de Grenoble - CEA, Directeur de thèse
  • M. Alfredo Goldman, Professeur à l’Université de São Paulo (USP), Co-directeur de thèse

Le modèle de programmation à base d’acteurs a été intensivement utilisé pour le développement de grandes applications et systèmes. On peut citer comme exemples la fonction chat de Facebook ou bien encore WhatsApp. Ces systèmes peuvent avoir plusieurs milliers d’utilisateurs connectés simultanément avec des contraintes fortes de performance et d’interactivité. Ces systèmes s’appuient sur des infrastructures informatiques basées sur des processeurs multi-cœurs. Ces infrastructures disposent en général d’un espace mémoire partagé et hiérarchique NUMA (Non-Uniform Memory Access). Notre analyse de l’état de l’art montre que peu d’études ont été menées sur l’adéquation des environnements d’exécution à base d’acteurs avec des plates-formes à mémoire hiérarchique. Ces environnements d’exécution font en général l’hypothèse que l’espace de mémoire est complètement plat, ce qui pose ensuite de sérieux problèmes de performance. Dans cette thèse, nous étudions les défis posés par les plates-formes multi-cœurs à mémoire hiérarchiques pour des environnements à base d’acteurs. Nous étudions plus particulièrement les problèmes de gestion mémoire, d’ordonnancement et d’équilibrage de charge.

Dans la première partie de la thèse, nous avons analysé et caractérisé les applications basées sur le modèle d’acteurs. Cette analyse a permis de mettre en évidence le fait que les exécutions des applications et benchmarks faisaient ressortir des structures de communication avec des propriétés particulières que les environnements d’exécution se doivent de prendre en compte pour optimiser les performances. La prise en compte du graphe de communication et la mise en œuvre ont été effectuées dans un environnement d’exécution réel, la machine virtuelle (VM) du langage de programmation Erlang. Le langage de programmation Erlang s’appuie sur le modèle d’acteurs avec une syntaxe claire et cohérente pour la gestion des acteurs. Les modifications que nous avons intégrées à la machine virtuelle Erlang permettent d’améliorer significativement les performances grâce à une meilleure prise en compte de l’affinité entre des acteurs qui interagissent beaucoup. L’ordonnancement et la régulation de charge des applications sont également améliorés grâce à une meilleure connaissance de l’application et de la topologie de la plate-forme.