Détection automatique d'interférences entre threads
Résumé
Comprendre les performances des applications multi-threadées peut s'avèrer difficile à cause des interférences entre threads. Alors que certaines interférences sont prévisibles (par exemple l'acquisition d'un verrou), d'autres sont plus subtiles (par exemple, le faux-partage) et complexes à détecter. Dans cet article, nous proposons une méthodologie et une métrique permettant de détecter les intérferences entre des threads et d'en quantifier l'impact sur les performances globales de l'application. Cette méthodologie consiste à étudier la variation de la durée d'exécution du code. Nous avons appliqué cette méthodologie à un ensemble de micro-benchmarks et d'applications. Les résultats montrent que cette méthodologie permet effectivement de détecter les interférences entre les threads d'une application