Autonomic Parallelism Adaptation on Software Transactional Memory
Adaptation autonome du parallélisme dans un système de mémoire transactionnelle logicielle
Abstract
Parallel programs need to manage the time trade-off between synchronization and computation. A high parallelism may decrease computing time but meanwhile increase synchronization cost among threads. Software Transactional Memory (STM) has emerged as a promising technique, which bypasses locks, to address synchronization issues through transactions. A way to reduce conflicts is by adjusting the parallelism, as a suitable parallelism can maximize program performance. However, there is no universal rule to decide the best parallelism for a program from an offline view. Furthermore, an offline tuning is costly and error-prone. Hence, it becomes necessary to adopt a dynamical tuning-configuration strategy to better manage a STM system. 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. We propose to design feedback control loops to automate the choice of parallelism level at runtime and diminish program execution time.
L'exécution de programmes parallèles demande la gestion d'un compromis entre le temps de synchronisation et le temps de calcul. Un haut degré de parallélisme peut diminuer le temps de calcul, mais augmenter le coût en temps de synchronisation entre processus légers. La mémoire transactionnelle logicielle (Software Transactional Memory, STM) est une technique prometteuse permettant de traiter le problème de synchronisation entre transactions en évitant les verrous. Une manière de réduire les conflits entre transactions est d'ajuster le degré de parallélisme, afin de trouver le niveau de parallélisme permettant de maximiser les performances du programme. Cependant, il n'existe pas de règle universelle permettant de décider du niveau de parallélisme optimal d'un programme hors ligne. De plus, un paramétrage hors ligne est coûteux et peut entraîner des erreurs. Par conséquent, il est nécessaire d'adopter une stratégie de paramétrage et reconfiguration dynamique afin de mieux gérer un système STM. Le concept de calcul autonomique offre aux programmeurs un cadre de méthodes et techniques pour construire des systèmes autonomiques 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 gardant bas le surcoût d'une telle méthode. Nous proposons de concevoir des boucles de rétroaction afin d'automatiser le choix du niveau de parallélisme à l'exécution, afin de diminuer le temps d'exécution du programme.
Origin | Files produced by the author(s) |
---|
Loading...