Programming Environment, Run-Time System and Simulator for Many-Core Machines
Environnement de programmation, support à l'exécution et simulateur pour machines à grand nombre de cœurs.
Résumé
Since 2005, chip manufacturers have stopped raising processor frequencies, which had been the primary mean to increase computer processing power since the end of the 90s. Other hardware techniques to improve sequential execution time have also shown diminishing returns, while raising the power envelope. For these reasons, commonly referred to as the frequency and power walls, manufacturers have turned to multiple processor cores to exploit the growing number of available transistors on a die. In this thesis, we prepare the arrival of many-core processors by focusing on three main research directions. First, we improve the CAPSULE parallel programming environment (conditional parallelization) by adding robust task synchronization primitives. We study its performance and show its benefits over common parallelization approaches, both in terms of speedups and execution time stability. Second, we adapt CAPSULE to distributed-memory architectures by presenting a data structure model that allows the run-time system to automatically handle data location based on program accesses. New distributed and local schemes are used to decide when tasks are effectively created and where they are dispatched. Third, we develop a new discrete-event-based simulator, SiMany, able to sustain hundreds to thousands of cores with practical execution time. It is more than 100 times faster than the current best flexible approaches. After validating it, we show that it makes it possible to explore the design of a wider range of architectures and to compare software scalability on them.
L'accroissement régulier de la fréquence des micro-processeurs et des importants gains de puissance qui en avaient résulté ont pris fin en 2005. Les autres techniques matérielles d'amélioration de performance se sont largement essouflées. Les fabricants de micro-processeurs ont donc choisi d'exploiter le nombre croissant de transistors disponibles en plaçant plusieurs cœurs de processeurs sur une même puce. Dans cette thèse, nous préparons l'arrivée de processeurs multi-cœur à grand nombre de cœurs par des recherches dans trois directions. Premièrement, nous améliorons l'environnement de parallélisation CAPSULE (parallélisation conditionnelle) en lui adjoignant des primitives de synchronization de tâches robustes. Nous montrons les gains obtenus par rapport aux approches usuelles en terme de rapidité et de stabilité du temps d'exécution. Deuxièmement, nous adaptons CAPSULE à des machines à mémoire distribuée en présentant un modèle de données qui permet au système de déplacer automatiquement les données en fonction des accès effectués par les programmes. De nouveaux algorithmes répartis et locaux permettent de décider de la création effective des tâches et de leur répartition. Troisièmement, nous développons un nouveau simulateur d'évènements discrets, SiMany, qui peut prendre en charge des centaines à des milliers de cœurs. Il est plus de 100 fois plus rapide que les meilleurs simulateurs flexibles actuels. Après validation, nous montrons que SiMany permet l'exploration d'un plus large champ d'architectures ainsi que l'étude des grandes lignes du comportement des logiciels sur celles-ci.
Loading...