Simultaneous multithreading
Le simultaneous multithreading (SMT) est une technique informatique datant des années 1960. Il s'agit d'une forme de multithreading, une technique qui consiste, comme le symmetric multiprocessing (SMP), à augmenter le TLP (thread level parallelism), c’est-à-dire le parallélisme des threads.
Description
[modifier | modifier le code]Le SMT est le partage d'un cœur de processeur superscalaire (les pipelines, les unités de calcul et les caches) entre plusieurs threads. Les processeurs non SMT passent alternativement d'un thread à l'autre pour l'exécution des instructions, alors que des processeurs SMT peuvent allouer des unités de calcul à des threads différents simultanément. Le but est d'améliorer l'utilisation des ressources.
Si deux threads peuvent se partager les ressources, on parle de SMT à deux voies (comme pour l'Hyperthreading d'Intel), de SMT à 4 voies pour 4 threads (comme pour le DEC Alpha EV8).
Le POWER5 d'IBM intègre un SMT deux voies complexe, puisqu'il peut attribuer des priorités aux threads et activer/désactiver le SMT de manière dynamique pour les cas où la méthode n'augmente pas les performances. Le processeur multi-cœur POWER7 intègre un SMT quatre voies permettant de désactiver un ou deux threads inactifs sur chaque cœur afin d'augmenter les performances des threads actifs[1]. Le SMT8 est disponible sur POWER8 à partir de la version AIX 7.2[2].
Références
[modifier | modifier le code]- Le noyau Linux 2.6.36 est disponible - Optimisations pour POWER7, linuxfr.org le
- (en) « Power 8 - smt2, smt4, smt8 information », sur ibm.com (consulté le ).