Processeurs multicœurs : plus c'est toujours mieux ?

Table des matières:

Processeurs multicœurs : plus c'est toujours mieux ?
Processeurs multicœurs : plus c'est toujours mieux ?
Anonim

L'ajout de plusieurs cœurs à un seul processeur offre des avantages significatifs grâce à la nature multitâche des systèmes d'exploitation modernes. Cependant, à certaines fins, il existe une limite pratique supérieure au nombre de cœurs apportant des améliorations par rapport au coût de leur ajout.

Progrès technologiques multicœurs

Image
Image

Les processeurs multicœurs sont disponibles sur les ordinateurs personnels depuis le début des années 2000. Les conceptions multicœurs ont résolu le problème des processeurs atteignant le plafond de leurs limites physiques en termes de vitesse d'horloge et d'efficacité avec laquelle ils pouvaient être refroidis tout en conservant la précision. En passant à des cœurs supplémentaires sur une seule puce de processeur, les fabricants ont évité les problèmes de vitesse d'horloge en multipliant efficacement la quantité de données pouvant être gérées par le processeur.

Lorsqu'ils ont été lancés à l'origine, les fabricants n'offraient que deux cœurs dans un seul processeur, mais il existe désormais des options pour quatre, six et même 10 ou plus. En plus d'ajouter des cœurs, les technologies de multithreading simultané, telles que l'Hyper-Threading d'Intel, peuvent doubler les cœurs virtuels que le système d'exploitation voit.

Processus et threads

Un processus est une tâche spécifique, comme un programme, exécuté sur un ordinateur. Un processus consiste en un ou plusieurs threads.

Un thread est simplement un flux unique de données provenant d'un programme passant par le processeur de l'ordinateur. Chaque application génère ses propres un ou plusieurs threads en fonction de son exécution. Sans multitâche, un processeur monocœur ne peut gérer qu'un seul thread à la fois, de sorte que le système bascule rapidement entre les threads pour traiter les données de manière apparemment simultanée.

L'avantage d'avoir plusieurs cœurs est que le système peut gérer plus d'un thread simultanément. Chaque cœur peut gérer un flux de données distinct. Cette architecture augmente considérablement les performances d'un système qui exécute des applications simultanées. Étant donné que les serveurs ont tendance à exécuter de nombreuses applications simultanées à un moment donné, la technologie a été initialement développée pour le client d'entreprise - mais à mesure que les ordinateurs personnels sont devenus plus complexes et que le multitâche a augmenté, ils ont également bénéficié d'avoir des cœurs supplémentaires.

Chaque processus, cependant, est régi par un thread principal qui ne peut occuper qu'un seul cœur. Ainsi, la vitesse relative d'un programme comme un jeu ou un moteur de rendu vidéo est strictement limitée à la capacité du noyau que le thread principal consomme. Le thread principal peut absolument déléguer des threads secondaires à d'autres cœurs - mais un jeu ne devient pas deux fois plus rapide lorsque vous doublez les cœurs. Ainsi, il n'est pas inhabituel pour un jeu de maximiser complètement un cœur (le thread principal), mais de ne voir qu'une utilisation partielle des autres cœurs pour les threads secondaires. Aucun doublage de cœur ne contourne le fait que le cœur principal est un limiteur de débit pour votre application, et les applications sensibles à cette architecture fonctionneront mieux que les applications qui ne le sont pas.

Dépendance logicielle

Bien que le concept de processeurs multicœurs semble attrayant, il y a une mise en garde majeure à cette technologie. Pour que les véritables avantages des processeurs multiples soient appréciés, le logiciel exécuté sur l'ordinateur doit être écrit pour prendre en charge le multithreading. Sans le logiciel prenant en charge une telle fonctionnalité, les threads seront principalement exécutés via un seul cœur, dégradant ainsi l'efficacité globale de l'ordinateur. Après tout, s'il ne peut fonctionner que sur un seul cœur dans un processeur quadricœur, il peut en fait être plus rapide de l'exécuter sur un processeur double cœur avec des vitesses d'horloge de base plus élevées.

Tous les principaux systèmes d'exploitation actuels prennent en charge le multithreading. Mais le multithreading doit aussi être écrit dans le logiciel d'application. La prise en charge du multithreading dans les logiciels grand public s'est améliorée au fil des ans, mais pour de nombreux programmes simples, la prise en charge du multithreading n'est toujours pas implémentée en raison de la complexité de la construction du logiciel. Par exemple, un programme de messagerie ou un navigateur Web ne verra probablement pas autant d'avantages au multithreading qu'un programme de montage graphique ou vidéo, où l'ordinateur traite des calculs complexes.

Un bon exemple pour expliquer cette tendance est de regarder un jeu vidéo typique. La plupart des jeux nécessitent une forme de moteur de rendu pour afficher ce qui se passe dans le jeu. De plus, une sorte d'intelligence artificielle contrôle les événements et les personnages du jeu. Avec un seul cœur, les deux tâches s'exécutent en basculant entre elles. Cette approche n'est pas efficace. Si le système comportait plusieurs processeurs, le rendu et l'IA pourraient chacun fonctionner sur un cœur distinct, une situation idéale pour un processeur multicœur.

Est-ce que 8 > 4 > 2?

Aller au-delà de deux cœurs présente des avantages mitigés, étant donné que la réponse pour un acheteur d'ordinateur donné dépend du logiciel qu'il utilise généralement. Par exemple, de nombreux jeux classiques offrent encore peu de différence de performances entre deux et quatre cœurs. Même les jeux modernes, dont certains auraient besoin ou prennent en charge huit cœurs, peuvent ne pas fonctionner mieux qu'une machine à six cœurs avec une vitesse d'horloge de base plus élevée, étant donné que l'efficacité du thread principal régit l'efficacité des performances multithread.

D'autre part, un programme d'encodage vidéo qui transcode la vidéo bénéficiera probablement d'énormes avantages, car le rendu d'images individuelles peut être transmis à différents cœurs, puis rassemblé en un seul flux par le logiciel. Ainsi, avoir huit cœurs sera encore plus avantageux que d'en avoir quatre. Essentiellement, le thread principal n'a pas besoin de ressources relativement riches; au lieu de cela, il peut confier le travail acharné aux threads filles qui maximisent les cœurs du processeur.

Vitesse d'horloge

Image
Image

En termes généraux, une vitesse d'horloge plus élevée signifie un processeur plus rapide. Les vitesses d'horloge deviennent plus nébuleuses lorsque vous considérez les vitesses par rapport à plusieurs cœurs, car les processeurs écrasent plusieurs fils de données grâce aux cœurs supplémentaires, mais chacun de ces cœurs fonctionnera à des vitesses inférieures en raison des restrictions thermiques.

Par exemple, un processeur double cœur peut prendre en charge des vitesses d'horloge de base de 3,5 GHz pour chaque processeur, tandis qu'un processeur quadricœur ne peut fonctionner qu'à 3,0 GHz. En regardant simplement un seul cœur sur chacun d'eux, le processeur double cœur est 14 % plus rapide que sur le quadricœur. Ainsi, si vous avez un programme qui n'est qu'à un seul thread, le processeur double cœur est en fait plus efficace. Là encore, si votre logiciel peut utiliser les quatre processeurs, le processeur quadricœur sera en fait environ 70 % plus rapide que ce processeur double cœur.

Conclusions

Pour la plupart, avoir un processeur avec un nombre de cœurs plus élevé est généralement préférable si votre logiciel et les cas d'utilisation typiques le prennent en charge. Pour la plupart, un processeur dual-core ou quad-core sera plus que suffisant pour un utilisateur d'ordinateur de base. La majorité des consommateurs ne verront aucun avantage tangible à aller au-delà de quatre cœurs de processeur, car si peu de logiciels non spécialisés en profitent. Le meilleur cas d'utilisation pour les processeurs à nombre élevé de cœurs concerne les machines qui effectuent des tâches complexes telles que le montage vidéo de bureau, certaines formes de jeux haut de gamme ou des programmes scientifiques et mathématiques complexes.

Consultez nos réflexions sur la vitesse d'un PC dont j'ai besoin ? pour avoir une meilleure idée du type de processeur qui correspond le mieux à vos besoins informatiques.

Conseillé: