Naweiluo Zhou - Contrôle Autonomique du Parallélisme et du Placement de Threads pour les Mémoires Transactionnelles Logicielles

10:00
Mercredi
19
Oct
2016
Lieu : 
Organisé par : 
Naweiluo Zhou
Intervenant : 
Naweiluo Zhou
Équipes : 
Information détaillée : 

 

Membres du jury :

 

  • M. Raymond Namyst : professeur, Université de Bordeaux, rapporteur
  • M. Lionel Seinturier : professeur, Université Lille 1, rapporteur
  • M. Christian Perez : directeur de recherche, INRIA Lyon , examinateur
  • M. Jean-François Méhaut : professeur, Université de Grenoble Alpes, directeur de thèse
  • M. Éric Rutten : chargé de recherche, INRIA Grenoble , directeur de thèse
  • M. Gwenaël Delaval : maître de conférences, Université de Grenoble Alpes, directeur de thèse
Résumé : 

L’exécution de programmes parallèles demande à établir un compromis entre le temps de calcul (nombre de threads) et le temps de synchronisation. Ce compromis dépend principalement du nombre de threads actifs. Un haut degré de parallélisme (beaucoup de threads) permet généralement de diminuer le temps de calcul, mais peut aussi avoir pour conséquence d'augmenter les surcoûts  de synchronisation entre threads. De plus, le placement des threads sur les cœurs peut impacter les performances du programme, car le temps pour accéder aux données en mémoire peut varier d’un cœur à l’autre en raison de la contention sur la hiérarchie mémoire. Ainsi, la performance d’un programme peut  être améliorée en adaptant le nombre de threads actifs et en plaçant correctement  les threads sur les cœurs de calcul. Cependant, il n’existe pas de règle universelle  permettant de décider a priori du niveau de parallélisme optimal et du placement de threads d’un programme, en particulier pour un programme avec les changements de comportement dynamique. D’ailleurs, un paramétrage hors ligne est moins précis. Cette thèse présente un travail sur la gestion dynamique du parallélisme et du placement  de threads. Cette thèse s'attaque au problème de gestion de  threads utilisant de la mémoire transactionnelle logicielle (Software Transactional Memory, STM). La mémoire transactionnelle logicielle constitue une technique prometteuse pour traiter le problème de synchronisation en évitant les verrous. Le concept de calcul autonomique offre aux programmeurs un cadre de méthodes et techniques pour construire des systèmes auto-adaptatifs ayant un comportement maîtrisé. L’idée clé est d’implémenter des boucles de rétroaction afin de concevoir des contrôleurs sûrs, efficaces et prédictibles, permettant d’observer et d’ajuster de manière dynamique les systèmes contrôlés, tout en minimisant le surcoût d’une telle méthode. La thèse propose de concevoir des boucles de rétroaction afin d’automatiser le gestion de threads à l’exécution avec comme objectif la réduction du temps d’exécution des programmes.