Les architectures des machines multi-coeurs actuelles deviennent de plus en plus complexes à cause du modèle de conception hiérarchique adopté. Par conséquent, assurer une meilleure stabilité, reproductibilité et prédictibilité des performances sur ces machines nécessite une compréhension approfondie des interactions qui existent entre les applications multi-threads et le matériel sous-jacent. Dans cette thèse, nous étudions deux aspects importants pour les performances des applications multi-threads. Nous montrons que la stabilité des performances est un critère important à considérer dans le processus d'évaluation des performances, et que le placement des threads est une technique efficace en termes de stabilité et d'amélioration des performances des programmes. Nous commençons par étudier la variabilité des temps d'exécution des programmes, nous définissons un protocole rigoureux d'évaluation des performances, puis nous analysons les raisons de cette variabilité et ses implications pour la mesure des performances. Ensuite, nous étudions la relation entre le partage des données entre threads et les stratégies de placement des threads sur machines hiérarchiques. Nous considérons plusieurs stratégies où le même placement est appliqué pour toute la durée d'exécution du programme. Alors que certaines reposent sur les caractéristiques des applications, d'autres non. Nous présentons aussi d'autres stratégies de placement des threads autorisant la migration des threads afin d'exploiter le partage des données au cours des différentes phases d'un programme.
Identifer | oai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00918239 |
Date | 11 December 2012 |
Creators | Mazouz, Abdelhafid |
Publisher | Université de Versailles-Saint Quentin en Yvelines |
Source Sets | CCSD theses-EN-ligne, France |
Language | English |
Detected Language | French |
Type | PhD thesis |
Page generated in 0.0021 seconds