Il a été démontré dans d' autres questions qu'en raison de l'état des applications informatiques, les processeurs multicœurs souffrent de rendements décroissants. Est-ce toujours le cas dans le monde d'aujourd'hui?
La plupart des nouvelles applications intègrent-elles le multithread et profitent-elles donc de plusieurs cœurs? Sinon, l'aide du système d'exploitation 64 bits plus récent tire-t-elle parti des cœurs en attribuant des tâches / processus à différents cœurs? Ou les processeurs multicœurs continuent-ils de souffrir des mêmes rendements décroissants (ou similaires)?
Veuillez sauvegarder toute réclamation avec des références.
cpu
multi-core
community-faq-proposed
rishimaharaj
la source
la source
Réponses:
Cela dépend fortement de ce que vous faites.
Pour les anciens Word et Excel et dragueur de mines et tout ce que votre maman utilise, un cœur suffit encore et plus de deux sont une surpuissance. Ces types d'applications passent la plupart du temps au ralenti, en attendant les commentaires des utilisateurs.
Pour les jeux, vous bénéficierez d'au moins deux. Après cela, cela dépend du jeu. Théoriquement, vous pouvez exécuter chaque adversaire IA sur un thread séparé, mais la logique centrale du jeu ne peut pas être facilement parallélisée - vous avez besoin d'un endroit où tous les résultats sont rassemblés pour former un état de jeu cohérent. Il y a donc généralement un thread "principal" sur lequel tout le monde attend.
Pour le multimédia, le calcul des nombres réels et la science, chaque cœur compte. Ce sont des tâches qui sont soit intrinsèquement multithread, soit facilement réalisables, et les développeurs sont fortement incités à tirer parti de toute la puissance de traitement disponible.
Les utilisateurs expérimentés aiment effectuer plusieurs tâches. Torrent, VirtualBox, capture d'écran, vidéo, minecraft et navigation Web s'exécutent tous en même temps. Vous allez donc bénéficier de chaque application gourmande en CPU ayant son propre noyau. De nos jours, il est populaire de diffuser votre jeu en direct. Voilà donc deux cœurs pour le jeu, au moins un de plus pour le thread de l'encodeur, et au moins un de plus pour le reste du système. C'est au moins 4 cœurs.
la source
Je crains que la réponse soit toujours, comme elle l'a toujours été, "cela dépend de ce que vous faites".
Oui, l'ajout de plus en plus de cœurs diminue, et il y en aura toujours si vous n'exécutez qu'une seule application à la fois .
Même dans une application multi-thread bien conçue, la plupart des tâches qui sont exécutées le sont afin d'attendre les composants les plus lents de la machine - disque dur, mise en réseau - sans affecter les performances apparentes pour l'utilisateur. Celles-ci ne peuvent pas être améliorées par une plus grande parallélisation, de sorte que toute limite d'accélération théorique est inaccessible à des fins pratiques.
Il convient de noter qu'il existe peu de "grandes" applications qui ne sont pas multithreads (il suffit de vérifier l'équivalent du gestionnaire de tâches de votre système d'exploitation, il devrait être en mesure de vous dire combien appartiennent à chaque processus - mon Firefox utilise actuellement 31, par exemple ).
Bien sûr, l'exécution de plusieurs applications non interdépendantes n'est pas aussi limitée par ces limites. Au fur et à mesure que vous ajoutez plus de cœurs, vous pouvez exécuter plus d'applications simultanément avec peu de baisse des performances de traitement (les performances du disque dur, de la mise en réseau, etc. ne sont toutefois pas aussi évolutives). En pratique, même cela est également sujet à des rendements décroissants car il y a des frais généraux inévitables pour gérer la répartition du travail entre les cœurs, les pipelines de communication, etc.
Par exemple, ce post de Tom's Hardware (de 2009) tente d'examiner les performances de quelques processeurs multicœurs sous des applications simultanées - en exécutant un jeu en même temps qu'un scan AVG (qui sont probablement tous deux multithreads). Les processeurs quadruple, triple et double cœur fonctionnent tous de manière similaire avec le jeu uniquement, mais ajoutent le scan AVG simultané et les performances (mesurées en FPS moyen) chutent respectivement de 22%, 40% et 59%.
Ainsi, alors qu'un quad core n'offrait aucune amélioration des performances par rapport à un dual core lors de l'exécution d'une application intensive, dès qu'une autre tâche intensive est apparue, elle a fini par être deux fois plus performante. Malheureusement, je ne trouve pas grand-chose d'autre qui étudie à quel point cela évolue avec plus de cœurs et des tâches plus intensives.
Et puis vous devez prendre note des caractéristiques modernes des processeurs tels que Turbo Boost d'Intel / Turbo Core d'AMD. Ces caractéristiques particulières permettent à un processeur multi-cœurs de garer les cœurs (les mettre dans un mode plus lent, à faible puissance) et d'utiliser l'énergie de rechange pour overclocker les cœurs qui restent actifs - permettant au processeur de s'optimiser pour fournir autant de puissance de traitement que possible pour le nombre de tâches qui lui sont présentées.
la source
Pour ajouter du carburant au feu, j'ai lu ici qu'Android est en fait ralenti en ayant plus d'un cœur:
la source
Bien sûr, cela dépend de ce que vous faites, mais oui, il y a des rendements décroissants.
Les applications simples et courantes telles que le traitement de texte ou la navigation sur le Web ne tirent guère profit de la présence de plus de deux cœurs de processeur. Les applications de calcul scientifique et de jeu ont tendance à mieux utiliser quatre (ou plus) cœurs et / ou la capacité d'hyperthreading car elles ont tendance à être conçues pour tirer le meilleur parti du matériel moderne, mais l'avantage de plus de quatre cœurs est limité.
De plus, tout n'est pas lié au calcul. L'ajout de cœurs de processeur n'aidera pas si votre charge de travail est liée aux E / S. Si vous avez déjà installé un SSD pour remplacer un disque dur mécanique, vous savez probablement que les performances informatiques quotidiennes sont le plus souvent limitées par le stockage de votre ordinateur. Dans les environnements de serveurs occupés où un grand nombre de cœurs est utilisé pour permettre au système de gérer un grand nombre d'utilisateurs et de demandes simultanément, des baies de disques spécialisées, SSD et autres systèmes de stockage sont utilisés pour garantir des performances maximales sous charge.
la source