Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory
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 temp...
Main Author: | |
---|---|
Other Authors: | |
Language: | en |
Published: |
2016
|
Subjects: | |
Online Access: | http://www.theses.fr/2016GREAM045/document |
id |
ndltd-theses.fr-2016GREAM045 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
en |
sources |
NDLTD |
topic |
Systèmes autonomiques Mémoire transactionnelle Contrlôle par rétroaction Synchronisation Adaptation du parallèlisme Affinité des threads Autonomic Transactional memory Feedback control Synchronisation Parallelism adaptation Thread affinity 004 |
spellingShingle |
Systèmes autonomiques Mémoire transactionnelle Contrlôle par rétroaction Synchronisation Adaptation du parallèlisme Affinité des threads Autonomic Transactional memory Feedback control Synchronisation Parallelism adaptation Thread affinity 004 Zhou, Naweiluo Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory |
description |
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 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 changemets 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éthodeset techniques pour construire des systèmes auto-adaptatifs ayant un comportementmaî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. === Parallel programs need to manage the trade-off between the time spent in synchronisation and computation. The trade-off is significantly affected by the number of active threads. High parallelism may decrease computing time while increase synchronisation cost. Furthermore, thread placement on different cores may impact on program performance, as the data access time can vary from one core to another due to intricacies of its underlying memory architecture. Therefore, the performance of a program can be improved by adjusting its parallelism degree and the mapping of its threads to physical cores. Alas, there is no universal rule to decide them for a program from an offline view, especially for a program with online behaviour variation. Moreover, offline tuning is less precise. This thesis presents work on dynamical management of parallelism and thread placement. It addresses multithread issues via Software Transactional Memory (STM). STM has emerged as a promising technique, which bypasses locks, to tackle synchronisation through transactions. Autonomic computing offers designers a framework of methods and techniques to build autonomic systems with well-mastered behaviours. Its key idea is to implement feedback control loops to design safe, efficient and predictable controllers, which enable monitoring and adjusting controlled systems dynamically while keeping overhead low. This dissertation proposes feedback control loops to automate management of threads at runtime and diminish program execution time. |
author2 |
Grenoble Alpes |
author_facet |
Grenoble Alpes Zhou, Naweiluo |
author |
Zhou, Naweiluo |
author_sort |
Zhou, Naweiluo |
title |
Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory |
title_short |
Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory |
title_full |
Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory |
title_fullStr |
Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory |
title_full_unstemmed |
Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory |
title_sort |
autonomic thread parallelism and mapping control for software transactional memory |
publishDate |
2016 |
url |
http://www.theses.fr/2016GREAM045/document |
work_keys_str_mv |
AT zhounaweiluo autonomicthreadparallelismandmappingcontrolforsoftwaretransactionalmemory AT zhounaweiluo controleautonomiqueduparallelismeetduplacementdethreadspourlesmemoirestransactionnelleslogicielles |
_version_ |
1719002204286746624 |
spelling |
ndltd-theses.fr-2016GREAM0452019-03-13T16:29:43Z Autonomic Thread Parallelism and Mapping Control for Software Transactional Memory Contrôle autonomique du parallélisme et du placement de threads pour les mémoires transactionnelles logicielles Systèmes autonomiques Mémoire transactionnelle Contrlôle par rétroaction Synchronisation Adaptation du parallèlisme Affinité des threads Autonomic Transactional memory Feedback control Synchronisation Parallelism adaptation Thread affinity 004 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 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 changemets 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éthodeset techniques pour construire des systèmes auto-adaptatifs ayant un comportementmaî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. Parallel programs need to manage the trade-off between the time spent in synchronisation and computation. The trade-off is significantly affected by the number of active threads. High parallelism may decrease computing time while increase synchronisation cost. Furthermore, thread placement on different cores may impact on program performance, as the data access time can vary from one core to another due to intricacies of its underlying memory architecture. Therefore, the performance of a program can be improved by adjusting its parallelism degree and the mapping of its threads to physical cores. Alas, there is no universal rule to decide them for a program from an offline view, especially for a program with online behaviour variation. Moreover, offline tuning is less precise. This thesis presents work on dynamical management of parallelism and thread placement. It addresses multithread issues via Software Transactional Memory (STM). STM has emerged as a promising technique, which bypasses locks, to tackle synchronisation through transactions. Autonomic computing offers designers a framework of methods and techniques to build autonomic systems with well-mastered behaviours. Its key idea is to implement feedback control loops to design safe, efficient and predictable controllers, which enable monitoring and adjusting controlled systems dynamically while keeping overhead low. This dissertation proposes feedback control loops to automate management of threads at runtime and diminish program execution time. Electronic Thesis or Dissertation Text en http://www.theses.fr/2016GREAM045/document Zhou, Naweiluo 2016-10-19 Grenoble Alpes Méhaut, Jean-François Rutten, Eric |