Processeurs multicœurs: est-ce toujours mieux ?
Ajouter 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 offrant des améliorations par rapport au coût de leur ajout.
Avancées technologiques multicœurs
Des processeurs multicœurs sont disponibles dans Ordinateur personnel depuis le début des années 2000. Les conceptions multicœurs ont résolu le problème des processeurs atteignant le plafond de leur capacité physique limitations en termes de vitesse d'horloge et d'efficacité avec laquelle ils pourraient être refroidis tout en maintenant 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ée par le CPU.
À leur sortie à 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 le nombre de cœurs virtuels que le
Processus et threads
UNE traiter est une tâche spécifique, comme un programme, s'exécutant sur un ordinateur. Un processus se compose d'un ou plusieurs threads.
UNE fil 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 threads en fonction de la façon dont elle s'exécute. 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 plusieurs threads 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 concurrentes. Étant donné que les serveurs ont tendance à exécuter de nombreuses applications simultanées à un moment donné, la technologie a été développée à l'origine 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 noyaux 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 cœur que le thread principal consomme. Le thread principal peut absolument déléguer les 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. Aucune quantité de core-doublement ne contourne le fait que le core 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 existe une mise en garde majeure à propos de cette technologie. Pour profiter pleinement des avantages des multiples processeurs, 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 la capacité de multithreading. Mais le multithreading doit également ê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, la prise en charge du multithreading n'est toujours pas implémentée en raison de la complexité du logiciel construire. Par exemple, un programme de messagerie ou un navigateur Web ne bénéficiera probablement pas autant du 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 informatique 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 s'exécuter sur un cœur distinct, une situation idéale pour un processeur à plusieurs cœurs.
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 nécessitent ou prennent en charge huit cœurs, peuvent ne pas fonctionner mieux qu'une machine à six cœurs avec un vitesse d'horloge de base plus élevée, étant donné que l'efficacité du thread principal régit l'efficacité du multithread performance.
D'un autre côté, un programme d'encodage vidéo qui transcode la vidéo aura 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. En substance, le thread principal n'a pas besoin de ressources relativement riches; au lieu de cela, il peut confier le travail acharné à des threads filles qui maximisent les cœurs du processeur.
Vitesses d'horloge
En termes généraux, une vitesse d'horloge plus élevée signifiera 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 traitent plusieurs données threads 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 bicœur peut prendre en charge des vitesses d'horloge de base de 3,5 GHz pour chaque processeur, tandis qu'un processeur quadricœur peut ne fonctionne qu'à 3,0 GHz. En regardant simplement un seul cœur sur chacun d'eux, le processeur dual-core est 14% plus rapide que sur le quad-core. Ainsi, si vous avez un programme qui n'est qu'à thread unique, le processeur dual-core est en fait plus efficace. Là encore, si votre logiciel peut utiliser les quatre processeurs, le processeur quad-core sera en réalité environ 70 % plus rapide que ce processeur dual-core.
Conclusion
Pour la plupart, il est généralement préférable d'avoir un processeur à nombre de cœurs plus élevé 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 des processeurs à nombre de cœurs élevé 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.
Découvrez nos réflexions sur À quelle vitesse d'un PC ai-je besoin ? pour avoir une meilleure idée du type de processeur qui correspond le mieux à vos besoins informatiques.