Cœurs de processeur: plus il y a de mieux?

69

J'ai actuellement un processeur dual-core au travail et un quad-core à la maison. J'ai remarqué que les deux PC sont assez égaux en ce qui concerne le lancement d'applications / la navigation sur le Web.

La différence que je peux voir est que mon dual-core est de 2,8 GHz et mon quad-core est de 2,4 GHz.

Est-il préférable d'avoir un dual-core avec une vitesse d'horloge rapide ou un quad-core avec une vitesse d'horloge médiocre?

Travis
la source
5
«Rapide» et «médiocre» sont relatifs. Dans votre cas, un quad core serait préférable car la différence de vitesse d'horloge n'est que de 400 MHz. Cependant, un dual-core à 3 GHz est préférable à un quad-core à 1,5 GHz, pour la plupart.
Sasha Chedygov
N'utilisez pas le GHz pour comparer les processeurs, utilisez des résultats de test de vitesse / charge pour comparer la vitesse effective d'un processeur. Un processeur dual core 3GHz pourrait être plus lent qu'un i7 à 2,4 GHz (le i7 n'a pas de bus frontal, ...) ...
Ben
2
@Ben, il devrait être évident que ce serait la même architecture de processeur (par exemple Core 2 Duo vs Quad à 45 nm).
Mircea Chirea

Réponses:

53

NOTE: Cette réponse a été écrite il y a 8 ans. La programmation parallèle est devenue depuis plus pertinente. Cela est probablement dû aux limites de vitesse d'horloge inhérentes et aux limites de taille de transistor qui approchent rapidement.


Votre problème principal est le logiciel non écrit pour multi-core.

Regardez l'excellent article de Jeff Atwood sur Choisir un noyau double ou quadruple .

pour la plupart des logiciels, vous atteignez un point de rendement décroissant très rapidement après deux cœurs. Dans les ordinateurs de bureau quadri-cœur et les rendements décroissants , je me demandais si les logiciels actuels pouvaient réellement utiliser même quatre cœurs de processeur, encore moins les inévitables cœurs de huit et seize processeurs que nous verrons dans quelques années.

Vous avez une réponse ici (surligné de l'article de Jeff),

Cependant, il y avait quelques surprises ici, comme Excel 2007 et le paramètre "opérations simultanées" de Lost Planet. Il est possible que l'ingénierie logicielle finisse par avancer au point où la vitesse d'horloge compte moins que le parallélisme. Sinon, cela pourrait ne pas être pertinent si nous ne parvenions pas à faire le choix entre des vitesses d'horloge plus rapides et davantage de cœurs de processeur. Mais entre-temps, la vitesse d'horloge gagne la plupart du temps. Plus de cœurs de processeur n'est pas automatiquement meilleur . Les utilisateurs types bénéficieront mieux du processeur double cœur le plus rapide possible.


La question du bus frontal (ce terme m'a toujours amusé).
Avec Nehalem, les choses changent … comme l'a dit ArsTechnica l'année dernière.

La loi de Moore a mis les concepteurs de processeurs dans l'embarras du trésor des transistors, et cela est plus évident que dans le processeur Nehalem 45 nm d'Intel. Débutant dans les variantes à 4 et 8 coeurs plus tard cette année, Nehalem intègre une tonne de matériel dans un seul socket de processeur. (Les premiers chiffres chiffraient le nombre de transistors d'un Nehalem quadricœur à 781 millions; aucun chiffre pour le modèle à 8 cœurs n'a encore été publié.) Mais essayer d'alimenter tout ce matériel avec l'architecture de bus frontal existante de la plate-forme Intel serait une folie. Nehalem sonne donc le glas de la construction de l’architecture de bus frontal positivement gériatrique d’Intel.

Le changement radical dans la situation de la bande passante système d'Intel que représente le nouveau QuickPath Interconnect (QPI) d' Intel est peut-être le facteur le plus important qui a façonné le design de Nehalem. Entre QuickPath et le contrôleur de mémoire intégré de Nehalem, un processeur Nehalem aura accès à une quantité de bande passante globale sans précédent, en particulier dans les implémentations à deux et quatre sockets.

AMD a précédemment installé le contrôleur de mémoire dans le processeur et utilisé Hypertransport.

nik
la source
3
L'autre problème à prendre en compte est la performance du bus frontal. Avec autant de cœurs, de mémoire et de programmes aussi volumineux, l'accès à la mémoire devient essentiel! Si le processeur doit faire défaut pour accéder à la mémoire principale, les performances en seront affectées. Plus vous effectuez plusieurs tâches à la fois, plus cela risque de se produire, quelle que soit la taille obscène du cache sur puce.
geoffc
1
Depuis 8 ans que cette question a été ouverte en 2009, les choses ont changé. Les logiciels tirent désormais beaucoup mieux parti de nombreux cœurs et cette tendance ne fera que se poursuivre.
Contango
1
@Contango D'accord, cette réponse doit être mise à jour pour refléter les tendances actuelles.
18

D'après mon expérience, un énorme avantage en termes de performances passe d'un à deux cœurs. Tout à coup, un programme à processeur élevé ne verrouille pas votre ordinateur, ni ne le ralentit de manière inutilisable. Différence massive.

Mais deux à quatre? Pour 99% des gens, cela ne fera aucune différence. Vous devrez exécuter plusieurs programmes à la fois ou utiliser des programmes pouvant tirer parti de plus de 2 cœurs (et, de manière réaliste, ils sont peu nombreux). Certains encodeurs de médias me viennent à l’esprit.

À cet égard, il existe également une différence entre les processeurs Intel Core 2 et AMD Phenoms. AMD utilise Hypertransport, un protocole point à point, de sorte que chaque cœur dispose d’une bande passante dédiée. Les processeurs Intel Core 2 (mais pas les Core i7 et les autres processeurs basés sur Niehalem) utilisent un bus frontal, qui est une bande passante partagée, ce qui vous permet d'avoir plus de cœurs en concurrence pour la même bande passante.

Cela peut potentiellement rendre une même horloge quad core (légèrement) plus lente dans certaines circonstances. Le rapport qualité-prix est toujours à double cœur IMHO. Cela étant dit, j'ai un quad core.

Peter Mortensen
la source
1
Le Nehalem utilise QPI (QuickPathInterconnect) qui se trouve dans le même parc que Hypertransport.
Nik
10

J'aime comment Donald Knuth résume :

Pour moi, il semble plus ou moins que les concepteurs de matériel ont manqué d'idées et qu'ils essaient de faire porter aux auteurs de logiciels le blâme de la disparition future de la loi de Moore en nous offrant des machines qui fonctionnent plus rapidement. repères clés! Je ne serais pas du tout surpris si toute l'idée de multithreading s'avère être un échec, pire que l'approche "Itanium" qui était supposée être si géniale - jusqu'à ce qu'il s'avère que les compilateurs souhaités étaient fondamentalement impossibles à écrire .

Permettez-moi de le dire ainsi: au cours des 50 dernières années, j'ai écrit plus de mille programmes, dont beaucoup ont une taille considérable. Je ne peux même pas penser à cinq de ces programmes qui auraient été sensiblement améliorés par le parallélisme ou le multithreading. Par exemple, plusieurs processeurs ne sont d'aucune aide pour TeX.

Pour certaines applications, il est très facile de tirer parti de plusieurs cœurs. Mais certaines autres applications n'en tireront jamais profit, alors que d'autres pourraient en bénéficier si les développeurs les optimisent (ce qui est très difficile).

Bastien Léonard
la source
4
En général, je suis d’accord pour dire que les multi-cœurs n’aideraient pas TeX lui-même. Mais ce serait une grande victoire pour un éditeur graphique TeX, qui appelle à plusieurs reprises TeX pour mettre à jour l'affichage lors de la modification du document.
KeithB
3
C’est l’un de ces endroits où mon cœur se tourne vers Knuth, mais mon esprit n’est pas tout à fait d’accord.
Nik
5

Pour mon ordinateur principal chez mon employeur, j'utilise une machine Xeon à quatre cœurs avec 8 Go de RAM.

Lorsque je suis en train de programmer et que j'ai Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (ou 2010) et une instance locale de Sql Server Express ... tout fonctionne parfaitement.

Comparativement, j’avais un double cœur auparavant, et tout commençait à s’analyser uniquement avec Visual Studio, Chrome et Sql Express.

C'est une question de ce que vous faites avec la machine. Si vous êtes un utilisateur expérimenté du montage vidéo, de la modélisation 3D ou de la programmation avec des ressources importantes .. alors oui, vous voudrez du quad-core et beaucoup de RAM.

Jeff Fritz
la source
1

Pour une utilisation quotidienne et des programmes qui ne sont pas optimisés multi-core, un dual-core rapide battra un quad-core plus lent.

À mesure que le temps passe et que les applications multithreads deviennent la norme, les quad-cœurs vont de l'avant.

D'un point de vue économique, les dual-core ont toujours une avance confortable.

Auxonic
la source
1

Ça dépend. Si vous faites des choses qui vont utiliser tous les cœurs fortement, 4 cœurs sont meilleurs (montage vidéo, rendu, etc.). La plupart des gens trouveront mieux deux cœurs rapides en ce moment, car peu d'applications sont écrites pour exploiter pleinement les 4 cœurs.

David Hayes
la source
1

Notez que les derniers processeurs i7 peuvent réellement augmenter la vitesse d'horloge sur les cœurs actifs lorsque tous ne sont pas nécessaires. Par exemple, si vous avez un quadricœur à 2,4 GHz, mais que le logiciel ne nécessite que 2 cœurs, il peut automatiquement être cadencé jusqu'à 2,8 GHz (il ne s'agit pas d'un chiffre réel, mais d'un exemple).

Et la dernière génération de l’i7, je pense, peut enregistrer 3 ou 4 bacs si seulement un ou deux cœurs sont nécessaires. En tant que tel, il se peut qu'il ne finisse pas par rester aussi difficile que ce qu'il est actuellement ...

jerryjvl
la source
1

Selon Anandtech.com :

Tout se résume au TDP de la puce, ou à son point de conception thermique. Plus une plate-forme est soumise à des contraintes TDP, plus vous bénéficierez du mode Turbo d'Intel. En d'autres termes; Pour pouvoir intégrer quatre cœurs dans un TDP de 130 W, chaque cœur doit fonctionner à une vitesse d'horloge plus faible que si nous n'avions qu'un seul cœur dans le même TDP.

À des TDP plus élevés, il y a généralement assez de marge thermique pour que les noyaux individuels soient assez hauts. Avec des TDP inférieurs, les fabricants de CPU doivent faire un compromis entre le nombre de cœurs et leur vitesse d'horloge - c'est là que nous pouvons nous amuser.

Tout cela dans le contexte de devoir choisir entre les cœurs (ou threads) et la fréquence de base.

Ivo Flipse
la source
Serait-ce plus pertinent pour un intérêt overclocking? Bon article quand même.
nik
0

Dans votre cas, le quad-core serait mieux. N'oubliez pas que plus vous avez de cœurs, plus vous pouvez effectuer de traitement parallèle. Donc, sur votre dual-core, vous pourrez peut-être exécuter une seule application plus rapidement que le quad, mais le quad peut exécuter 4 applications plus rapidement que vous ne pourrez le faire. En outre, si une application est écrite pour être traitée parallèlement (multi-thread), elle fonctionnera mieux avec une architecture multi-core.

Tout cela est relatif, cependant, dans la mesure où un quadricœur fonctionnant à 100 Mhz ne produira pas un processeur double cœur à 4 Ghz. En règle générale, plus il y a de noyaux, mieux c'est.

Joseph
la source
Vous supposez qu'une application pouvant fonctionner sur deux cœurs pourra également tirer parti de quatre cœurs. Ce n'est pas toujours vrai.
Nik
@nik Non, je disais qu'une application multi-thread fonctionnera mieux avec une architecture multi-core. Je n'ai rien dit sur le gain proportionnel par rapport au nombre de cœurs que vous avez.
Joseph
0

Cela dépend de ce que vous faites et des capacités de votre système d'exploitation et de vos applications.

Si vous avez un système d'exploitation léger et que vous exécutez une seule application liée au processeur qui ne peut utiliser qu'un seul processeur, deux processeurs plus rapides constituent un meilleur choix.

Sinon, si le système d'exploitation peut planifier efficacement tous les cœurs et que vous exécutez de nombreuses applications ou des applications pouvant utiliser plusieurs processeurs plus lentement, alors on s'attendrait à de meilleures performances pour une consommation d'énergie plus faible et donc moins de chaleur.

mas
la source
0

Si vous faites beaucoup d'encodage vidéo, de rendu 3D ou de code source distribué, plus vous aurez de cœurs, mieux ce sera. Vous constaterez une nette différence de performances pour ces types d’applications lorsque vous passez de 1 à 2 à 4 à 8 cœurs.

Sinon, les applications standard ne bénéficieront pas de plus de cœurs. Même les jeux n'exploiteront vraiment pas autant de cœurs. OMI, vous feriez mieux de dépenser de l'argent sur une meilleure carte graphique.

Nick Haddad
la source
0

Dépend.

Tout à fait.

Vous pouvez facilement trouver un quad-core en utilisant seulement deux cœurs. Cela concerne en partie le système d'exploitation et la conception du logiciel. Plus encore, ils partagent tout le reste, en particulier la mémoire, le disque et les périphériques.

Vous savez que le système d'exploitation ne démarre pas (sensiblement) plus rapidement et les pages Web ne se téléchargent pas plus rapidement (elles pourraient dessiner plus rapidement).

Dlamblin
la source