Sous Windows XP afin de savoir si votre processeur simple core possède cette technologie il suffit de faire Ctrl, Alt puis Suppr au clavier, dans la fenêtre qui apparaît cliquez sur Gestionnaire des tâches puis sélectionnez Performances.
L’historique de l’utilisation de l’UC comporte soit un graphique dans le cas d’un processeur sans HT soit deux graphiques pour un processeur HT.
Il est alors facile de voir la répartition de charge de votre CPU (Processeur) au cours d’un calcul.
L’idée d’Intel lors du lancement de l’HyperThreading est assez simple en fait. Ils ont constaté que, dans la majorité des cas, les applications que nous utilisons sont multi-threadées.
Qu’est-ce qu’une application Multi–threadée ?
Ce nom un peu barbare désigne la méthode employée par une application pour exécuter plusieurs taches. Elle simule une exécution en parallèle.
Prenons un exemple assez imagé.
Nous souhaitons appliquer un effet sur une photo. Ce souhait représente à lui tout seul une quantité importante de calculs. Afin d’y parvenir, une application Multi-threadée va le décomposer en une suite de “processus légers” ou “thread”. Après l’envoi d’un premier Thread notre logiciel de retouche photo ne va pas attendre la réponse, il envoie tout de suite la suivante. Cette méthode est dite “parallèle”.
Revenons maintenant à notre Hyperthreading.
Intel a mis tout son savoir-faire pour optimiser cette simulation au sein de leur processeur afin de reproduire au mieux un contexte bi-processeur.
En effet dans un processeur Pentium IV Prescott HT il n’y a qu’un cœur donc qu’une seule possibilité de calcul. Les Threads sont calculés les uns après les autres mais l’ensemble du processus de préparation du calcul est fait en parallèle. En d’autres termes, les préparatifs sont faits en parallèle mais pas les calculs.
Avec ce schéma le processeur a l’avantage d’avoir toujours une file d’instructions prêtes. Nous économisons un temps précieux qui se répercute alors sur les performances globales. Il est donc raisonnable et logique de penser que l’utilisation de telles applications sont nécessaires pour profiter pleinement de cette technologie.
Mais toutes les applications ne sont pas forcement programmées en multithreading. La question est alors de savoir si l’utilisation de Hyperthreading ne freine pas dans ce cas les performances ? Est que notre système d’exploitation tire partie de HyperThreading ?