thesis

Méthodologie de mesure et optimisation de l'utilisation des hiérarchies mémoire dans les systèmes multicoeur

Defense date:

Jan. 1, 2010

Edit

Disciplines:

Directors:

Abstract EN:

Microprocessors embedding multicore technology are nowadays the new building blocks of computation nodes for supercomputers. To the classic instruction-level parallelism found in every modern microprocessor, task-level parallelism is now added. The most critical shared ressource – memory – becomes even more critical with the advent of shared caches between multiple cores. This dissertation proposes to give methodological leads to determine where the bottlenecks are situated in a system built on multicores chips, as well as caracterize some problems specific to multicore. Among them, one can find in particular the contention in cache hierarchies : RAM, and last level of cache. The presence of prefetch mechanisms can also lead to cacheline stealing. It can deeply hurt performance in compute- and memory-intensive applications manipulating complex data structures such as multidimensional arrays. Finally, based on optimized building blocks for unicore execution in matrix computations, we propose a methodology to determine the best partitioning to get acceptable performance in a multicore environment.

Abstract FR:

Les microprocesseurs multicoeur sont désormais les nouvelles briques de base des nœuds de calcul des super-ordinateurs. Au parallélisme précédemment trouve uniquement au niveau du nœud de calcul, se rajoute celui trouve directement au niveau du microprocesseur. Le parallélisme de tache se superpose au parallélisme d’instruction. La ressource partagée la plus critique – la mémoire – le devient encore plus avec l’apparition de mémoire cache partagée entre plusieurs cœurs de calcul. Cette thèse propose de donner des pistes méthodologiques pour déterminer ou se trouvent les goulots d’étranglement dans un système multicoeur, ainsi que de caractériser certains de ces problèmes spécifiques a ceux-ci. Parmi eux, on trouve en particulier la contention dans la hiérarchie mémoire : RAM et dernier niveau de cache. La présence de mécanismes de pré-chargement mémoire peut aussi mener a du «vol» de lignes de cache, qui peut faire baisser les performances d’applications de calcul intensif manipulant des structures de données complexes, tels des tableaux multidimensionnels. Enfin, en se basant sur des briques de base optimisées pour une exécution unicoeur de calcul matriciel dense, nous proposons une méthodologie pour déterminer le meilleur partitionnement possible pour obtenir des performances acceptables dans un environnement