Un nombre de cœurs plus élevé ou une vitesse d'horloge plus élevée sont-ils plus avantageux pour les performances d'un ordinateur? [fermé]

16

Avec la baisse des coûts du silicium et l'augmentation des besoins des consommateurs, les fabricants semblent pousser à deux choses: la vitesse d'horloge et / ou le nombre de cœurs. Avec la façon dont les choses se passent, il ne semble plus que la vitesse d'horloge des processeurs augmente, mais le nombre de cœurs de processeur.

Je me souviens seulement de quelques années en arrière, j'avais un joli processeur Pentium 4 simple cœur rapide. Avance rapide jusqu'à aujourd'hui, et je ne pense pas que vous puissiez même acheter un processeur monocœur (sans parler de l'augmentation croissante des processeurs multicœurs, même dans les téléphones portables ). Dans l'état actuel des choses, nous pourrions trouver des ordinateurs avec des centaines de cœurs dans quelques années (et je sais que de nombreux systèmes d'exploitation le prennent déjà en charge).

Est-il plus avantageux pour les performances globales d'un système d'augmenter la vitesse d'horloge ou d'augmenter le nombre de cœurs? Supposons que nous entrons dans des centaines de cœurs fonctionnant tous ensemble, ou que les vitesses d'horloge soient dix fois supérieures à ce que nous avons aujourd'hui (indépendamment du fait que cela soit physiquement possible ou non).

Quels sont les exemples de processus courants (par exemple, cryptage, compression de fichiers, édition d'images / vidéos) qui bénéficieront le plus de l'un ou de l'autre? Y a-t-il des processus qui peuvent l' être, mais actuellement (pour des raisons techniques) ne sont pas accélérés en augmentant leur parallélisme?


Supposons que le processeur hypothétique ait exactement la même conception de base (taille de mot, largeur de bit d'adresse, taille du bus mémoire, cache, etc.), donc les seules variables ici sont la vitesse d'horloge et le nombre de cœurs. Et encore une fois, je ne parle pas d'un, deux ou même quatre cœurs - imaginez des dizaines à des centaines.

Percée
la source
9
Tout dépendra de ce que vous voulez faire sur cet ordinateur. Plusieurs cœurs sont bons pour certaines choses, des vitesses d'horloge plus élevées pour d'autres.
ChrisF
@ChrisF Je connais personnellement la réponse, mais je pose cette question pour deux raisons. La première consiste à avoir cette information sur le site Web (je ne l'ai vue que demandée en ce qui concerne les processeurs dual ou quad core), et la seconde est d'essayer de donner aux gens une idée de ce qui va arriver "à l'avenir" et de montrer quelles sont les applications des deux côtés de l'équation.
Percée
3
Je dirais que bien que ce soit une bonne question pour discuter tout en ayant une pinte, ce n'est pas une bonne question d'échange de pile.
EBGreen
1
Il y a trop de variables, que se passe-t-il si et d'autres paramètres + changements technologiques en cours pour développer une réponse succincte qui sera pertinente pendant plus d'une période de temps spécifique. C'est un sujet intéressant pour un forum ou un blog, mais pas comme quelque chose à épingler comme une «réponse». J'ai voté pour fermer pour cette raison alors laissez le flambage commencer !!!
Linker3000

Réponses:

12

Il y a deux situations de base à considérer:

  1. Le processeur est utilisé avec un ordinateur qui effectue uniquement des calculs pour un seul programme

  2. Le processeur est utilisé pour plusieurs programmes exécutés en même temps

La première situation est celle où la «vitesse» du processeur est plus importante, car l'utilisateur souhaite pouvoir effectuer des calculs rapidement et efficacement. Ces situations concernent généralement le traitement intensif des calculs, c'est-à-dire le calcul des nombres premiers pour le chiffrement / déchiffrement

Le second est l'endroit où plusieurs cœurs sont utiles, car chaque programme peut être affecté à un cœur séparé, libérant ainsi chaque programme de «se resserrer» les uns les autres. Dans le monde d'aujourd'hui, l'utilisateur moyen va utiliser son ordinateur pour plusieurs programmes à la fois, ce qui rend le traitement multicœur une chose souhaitable.

Cependant, multicœur ! = Vitesses plus rapides ou performances supérieures dans tous les cas. Étant donné que la plupart des programmes sont écrits pour un traitement à noyau unique * , la vitesse d'horloge est toujours importante à considérer. Une combinaison des deux doit être prise en considération (ainsi que de nombreux autres facteurs également) .


* Il existe certains programmes, et j'espère que bientôt d'autres seront créés, où plusieurs cœurs peuvent être utilisés en même temps. L'avenir du logiciel se trouve avec cette " Programmation Parallèle ":

Les développeurs de logiciels ne peuvent plus compter uniquement sur l'augmentation des vitesses d'horloge pour accélérer les applications monothread; au lieu de cela, pour obtenir un avantage concurrentiel, les développeurs doivent apprendre à concevoir correctement leurs applications pour s'exécuter dans un environnement fileté. Les architectures multicœurs ont un package de processeur unique qui contient deux ou plusieurs «cœurs d'exécution» ou moteurs de calcul, et fournissent, avec le logiciel approprié, une exécution entièrement parallèle de plusieurs threads logiciels.

- Intel

James Mertz
la source
Meilleure réponse que j'ai vue jusqu'à présent, +1. Savez-vous s'il est possible d'accélérer le cryptage / décryptage avec une sorte d'algorithme parallèle (ou une telle chose existe-t-elle même)?
Percée
2

Je pense personnellement que le nombre de carottes est la voie à suivre. Le développement de logiciels s'est déplacé vers des systèmes en réseau, les ressources locales ne sont donc plus les seules ressources disponibles. Le facteur le plus important dans la façon dont vous travaillez maintenant est le réseau dont vous faites partie.

Notez le passage au haut débit mobile, une connectivité constante, un accès à distance, etc. Bien qu'il soit discutable quels facteurs CPU sont plus optimaux pour la durée de vie de la batterie (vous avez l'équation d'optimisation classique de la valeur de travail en fonction du temps), je pense personnellement que si vous deviez en choisir un, je choisirais plus de cœurs.

Intel vous permet désormais d'alimenter des cœurs à la demande. Bien qu'il ne soit pas aussi optimal que de ne pas avoir de cœurs en veille, avoir la possibilité d'utiliser plus de cœurs vous donne la flexibilité d'exécuter plus d'applications sur la même plate-forme matérielle.

surfasb
la source
2

Comme ChrisF le mentionne dans un commentaire, cela dépend. Mais comme de telles réponses ne sont pas vraiment des réponses, je vais essayer de faire quelques scénarios où l'un sera plus avantageux que l'autre:

Dans la plupart des processus courants que vous mentionnez, le nombre de cœurs n'aura pas beaucoup d'importance, car la plupart du travail est effectué sur un seul thread qui ne peut s'exécuter que sur un seul cœur (à la fois). Pour de tels processus, un cœur unique mais très puissant fonctionnera mieux que quelques cœurs plus lents. Le chiffrement et la compression de fichiers pourraient être des exceptions à cela, mais cela dépend beaucoup des algorithmes utilisés et de leur exécution en parallèle.

Cependant, vous avez oublié l'une des tâches les plus courantes effectuées sur les ordinateurs aujourd'hui: la navigation. Plusieurs navigateurs populaires ouvrent chaque onglet dans un processus distinct (Chrome étant le seul que j'en suis sûr, car c'est celui que j'utilise), ce qui signifie que si vous avez quatre onglets ouverts sur un système quadricœur, chaque fenêtre de navigation peut (en théorie) ont un noyau "pour lui-même" (en ignorant les threads du système d'exploitation et d'autres choses), et être aussi rapide que s'il n'y avait pas d'autres onglets / fenêtres de navigateur ouverts. Pour les personnes qui naviguent avec de nombreux onglets ouverts à la fois, cela peut être une sérieuse amélioration des performances sans avoir à construire des cœurs de processeur extrêmement rapides.

La clé pour savoir si un système multicœur avec des cœurs plus lents sera plus rapide qu'un système monocœur avec un cœur rapide est de savoir si vous allez faire beaucoup de choses différentes simultanément ou quelques choses, mais lourdes . Comme cela diffère beaucoup d'un utilisateur à l'autre, il en sera de même pour la réponse à votre question.


Les autres réponses soulèvent également quelques points importants:

  • les performances du processeur ne dépendent plus uniquement de la vitesse d'horloge ou du nombre de cœurs - d'autres parties du processeur deviennent des goulots d'étranglement à mesure que la vitesse d'horloge et le nombre de cœurs s'améliorent.
  • pour la plupart des utilisateurs, les performances du processeur ne sont même pas le goulot de la bouteille au départ. Si vous passez votre temps dans des applications hébergées comme Google Docs, la vitesse de votre carte réseau aura plus d'importance que la vitesse de votre cœur de processeur. Si vous regardez ou éditez des films en haute résolution, les performances du disque dur auront plus d'importance. Etc...
Tomas Aschan
la source
+1 pour avoir réfléchi et fourni des explications, mais je voudrais souligner une chose: oui, certains navigateurs placent chaque onglet dans un processus distinct , mais cela se fait juste au cas où le processus se bloquerait. La plupart des navigateurs exécutent à tout le moins chaque onglet dans un thread distinct, et les systèmes d'exploitation ont la possibilité d'exécuter plusieurs threads (à partir du même processus) sur des cœurs différents.
Percée
IE 9 utilise la méthode multi-processus. Cependant, je pense qu'ils utilisent un certain nombre de processus et partagent simplement tous les onglets entre ces processus. Il en résulte beaucoup moins de processus que Chrome ne peut en finir, tout en signifiant que vous ne perdrez que quelques onglets si tout se résume dans un tas teinté de Redmond.
music2myear
Oh, et cela dépend aussi du logiciel. Alors que le système d'exploitation peut généralement gérer la gestion du trafic et envoyer des threads en attente aux cœurs disponibles (image mentale de match.com en cours dans mon silicium grotty), des programmes qui sont eux-mêmes multithreads (la plupart des produits Adobe Creative Suite et d'autres bien pris en charge , des outils modernes de développement multimédia) tireront un bien meilleur parti des capacités d'un système multicœur.
music2myear
2

Tout d'abord, les vitesses monocœur n'ont pas vraiment baissé autant. La seule raison pour laquelle la gamme actuelle de Sandy Bridge d'Intel ne dépasse pas les Pentium 4 monocœur en termes de mégahertz est qu'Intel manque de concurrence, de sorte qu'ils n'ont pas à pousser aussi fort.

Deuxièmement, la vitesse d'horloge n'est pas tout, même sur un seul cœur. En ce qui concerne les performances des applications, toujours par rapport au Pentium 4, la gamme Intel actuelle est environ 50% plus rapide par cycle d'horloge . Les raisons pour lesquelles Sandy Bridge est plus rapide par cycle d'horloge que Pentium 4 (Prescott étant la dernière incarnation de celui-ci) sont multiples, mais avec un contrôleur de mémoire intelligent pré-récupéré, un contrôleur de mémoire sur le même dé avec le CPU et un parallélisme de niveau d'instruction (ILP) supérieur contribuer à cela.

Le parallélisme au niveau des instructions signifie essentiellement que le processeur examine les instructions et leurs dépendances et si deux instructions ne dépendent pas l'une de l'autre, le processeur peut commencer à charger des données pour les deux en même temps et éventuellement réorganiser les instructions, des données pour l'une des ils arrivent avant l'autre.

Troisièmement, certaines applications bénéficient en effet très bien de plusieurs cœurs. Par exemple, Photoshop préfère presque toujours plus de cœurs à la fréquence de fonctionnement. C'est à dire. même un quad-core lent bat presque toujours n'importe quelle puce dual-core, et n'importe quel dual-core bat n'importe quelle puce single-core. Les tri-coeurs sont un sac mixte, ils gagnent souvent les dual-cores, mais pas toujours.

Généralement, les applications qui effectuent le même type d'opérations pour de nombreux ensembles de données différents bénéficient le plus du parallélisme. Par exemple, la compression vidéo ou l'édition de photos peuvent souvent être parallélisées assez facilement. D'un autre côté, les jeux informatiques se sont révélés difficiles à paralléliser. Les graphiques sur eux parallèlement bien sûr très bien, mais cette partie est exécutée sur GPU, pas sur CPU. La physique restante, la comptabilité du monde du jeu et les IA se parallélisent moins facilement.

Zds
la source
1

En fait, aujourd'hui, le facteur le plus important n'est pas la vitesse d'horloge du processeur, il y a beaucoup de nouvelles fonctionnalités lancées depuis que ce "facteur de comparaison" est tombé en désuétude.

Aujourd'hui, vous devez examiner de nombreux facteurs pour déduire les performances des processeurs. Des choses comme:

  • nombres de coeurs
  • nombre de threads d'opération parallèle
  • famille de processeurs (Dual core, Pentium, Core i / Calpella, Sandy Bridge, etc.)
  • génération de processeur (2e, 6e, etc.) puis
  • vitesse d'horloge du processeur.

En fait, lorsque je veux comparer les vitesses du processeur, je consulte le mot de passe des tableaux de référence Notebookcheck . Les repères, à mon avis, sont le meilleur facteur pour mesurer et comparer la vitesse et les performances du processeur.

Diogo
la source
Oui, mais pour simplifier les choses, supposons que tout le reste est égal (même quantité de cache par cœur, même largeur de bus d'adresse, même taille de mot, etc ...). Les noyaux eux-mêmes sont exactement les mêmes, c'est juste a) combien, ou b) à quelle vitesse.
Percée
Um, la famille et la génération de processeurs n'ont rien à voir avec la vitesse du processeur. Après tout, les procs Atom sont beaucoup plus récents que les P4 ou les processeurs Core et Core2, mais personne ne dirait jamais qu'ils sont plus rapides. D'autres éléments qui ont un effet plus direct sur la vitesse du processeur sont le cache sur puce, le nombre de registres, l'architecture de la puce, la taille des voies conductrices (processus de fabrication nm), les capacités de fonctionnement en virgule flottante, etc.
music2myear
@ music2myear - Lorsque je parle à une génération, je parle de famille ( superuser.com/questions/314757/… ). En fait, l'Atom D525 est meilleur que beaucoup de Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo