Analyse et optimisation de performances sur architectures multicoeurs
Institution:
Versailles-St Quentin en YvelinesDisciplines:
Directors:
Abstract EN:
The fast increase in the number of cores of modern Chip Multiprocessors (CMP) is not followed by a similar increase of memory bandwidth. Performance depends more and more on access patterns and transformations enhancing spatial or temporal locality are essential for high performance applications. There is a need for performance tuning tools in order to gain a better understanding of issues suffered by parallel applications and thus to harness the ever-increasing available horsepower. In this thesis, we first present the MAQAO performance analysis tool. We show how it combines static and dynamic analyses in order to better understand performance evaluation issues which are generally multifaceted. We then describe the first major contribution of this thesis, a domain specific instrumentation language (DSL) to easily build low-overhead performance evaluation tools. Finally, we propose a tool to characterize the memory behavior of applications, which is the second major contribution. Our work focuses both on single threaded and multi-threaded issues. We use several analyses to detect inefficient access patterns and lookup for issues related to interactions between threads, and their impact on the memory hierarchy (caches).
Abstract FR:
L’augmentation rapide du nombre de cœurs dans les processeurs actuels ne se traduit pas par une mise à l'échelle en conséquence de la bande passante mémoire. Or les performances dépendent de plus en plus des motifs d'accès à la mémoire. Les transformations permettant d'améliorer aussi bien la localité spatiale que temporelle deviennent incontournables pour les applications de calcul haute performance. Il existe un réel besoin d'outils d'évaluation et d'amélioration de performance permettant de mieux appréhender les problèmes dont souffre les applications parallèles, et ainsi de mieux tirer parti de l'énorme puissance de calcul disponible et qui ne cesse de croitre. Dans cette thèse, nous présentons dans un premier temps l'outil d'analyse de performance MAQAO. Nous montrons comment il permet, grâce au couplage d'analyses statiques et dynamiques, de mieux cerner les problèmes d'évaluation de performance, qui possèdent en générale plusieurs facettes. Nous décrivons ensuite la première contribution majeure de cette Thèse, à savoir un langage dédié à l'instrumentation permettant de construire efficacement des outils d'évaluation de performance à surcoûts réduits. Finalement, nous mettons en avant un outil de caractérisation du comportement mémoire d'applications, qui représente la seconde contribution majeure. Notre travail se focalise aussi bien sur les problèmes mono-thread que multi-thread. Nous utilisons plusieurs analyses permettant de déceler des motifs d'accès àla mémoire inefficaces ainsi que de rechercher les problèmes liés àl'interaction entre plusieurs threads et affectant la hiérarchie mémoires (les caches).