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.
Réponses:
Il y a deux situations de base à considérer:
Le processeur est utilisé avec un ordinateur qui effectue uniquement des calculs pour un seul programme
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 ":
la source
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.
la source
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:
la source
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.
la source
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:
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.
la source