CPU-Kerne: Je mehr, desto besser?

69

Derzeit arbeite ich mit einem Dual-Core-Prozessor und einem Quad-Core-Prozessor zu Hause. Mir ist aufgefallen, dass beide PCs in Bezug auf das Starten von Anwendungen und das Surfen im Internet ziemlich gleich sind.

Der Unterschied, den ich sehe, ist, dass mein Dual-Core 2,8 GHz und mein Quad-Core 2,4 GHz beträgt.

Ist es besser, einen Dual-Core mit einer schnellen Taktrate oder einen Quad-Core mit einer mittelmäßigen Taktrate zu haben?

Travis
quelle
5
"Schnell" und "mittelmäßig" sind relativ. In Ihrem Fall wäre ein Quad-Core besser, da der Unterschied in den Taktraten nur 400 MHz beträgt. Ein 3-GHz-Dual-Core ist jedoch zum größten Teil besser als ein 1,5-GHz-Quad-Core.
Sasha Chedygov
Verwenden Sie GHz nicht zum Vergleichen von Prozessoren, sondern verwenden Sie einige Geschwindigkeits- / Lasttestergebnisse, um die effektive Geschwindigkeit eines Prozessors zu vergleichen. Ein Dual-Core-3GHz-Prozessor ist möglicherweise langsamer als ein 2,4-GHz-i7 (i7 hat keinen Frontbus , ...) ...
Ben
2
@Ben, sollte klar sein, dass es sich um die gleiche Prozessorarchitektur handelt (zB 45nm Core 2 Duo vs Quad).
Mircea Chirea

Antworten:

53

HINWEIS: Diese Antwort wurde vor 8 Jahren geschrieben. Parallele Programmierung ist seitdem relevanter geworden. Dies ist wahrscheinlich auf inhärente Taktgeschwindigkeitsbeschränkungen und die sich schnell nähernden Transistorgrößenbeschränkungen zurückzuführen.


Ihr Hauptproblem ist Software, die nicht für Multi-Core-Systeme geschrieben wurde.

Schauen Sie sich Jeff Atwoods hervorragenden Artikel über die Auswahl von Dual Core oder Quad Core an .

Bei den meisten Anwendungen ist nach zwei Kernen ein sehr schneller Rückgang der Renditen zu verzeichnen. Bei Quad-Core-Desktops und sinkenden Renditen habe ich mich gefragt, wie effektiv die heutige Software sogar vier CPU-Kerne nutzen kann, geschweige denn die unvermeidlichen acht und sechzehn CPU-Kerne, die wir in einigen Jahren sehen werden.

Sie werden hier beantwortet (Hervorhebung aus Jeffs Artikel),

Es gab hier jedoch einige Überraschungen, wie z. B. Excel 2007 und die Einstellung "Gleichzeitige Operationen" von Lost Planet. Möglicherweise wird das Software-Engineering irgendwann so weit fortgeschritten sein, dass die Taktrate weniger zählt als die Parallelität. Vielleicht ist es auch irrelevant, wenn wir nicht die Wahl zwischen schnelleren Taktraten und mehr CPU-Kernen treffen. Aber in der Zwischenzeit gewinnt die Taktrate die meiste Zeit. Mehr CPU-Kerne sind nicht automatisch besser . Typische Benutzer sind mit der schnellstmöglichen Dual-Core-CPU, die sie sich leisten können, besser dran.


Die Ausgabe des Front-Side-Bus (dieser Begriff hat mich immer amüsiert).
Mit Nehalem ändern sich die Dinge ... wie ArsTechnica letztes Jahr sagte.

Das Moore-Gesetz hat den Prozessorkonstrukteuren den Transistorreichtum in Verlegenheit gebracht, und nirgendwo ist dies offensichtlicher als beim 45-nm-Nehalem-Prozessor von Intel. Nehalem, das später in diesem Jahr in 4- und 8-Core-Varianten auf den Markt kommt, packt eine Tonne Hardware in einen einzelnen Prozessorsockel. (Frühe Zahlen beziffern die Transistoranzahl eines Quad-Core-Nehalem auf 781 Millionen; noch sind keine Zahlen für das 8-Core-Modell erschienen.) Der Versuch, die gesamte Hardware mit der vorhandenen Frontside-Bus-Architektur der Intel-Plattform zu versorgen, wäre jedoch töricht. Ebenso wichtig ist, dass Nehalem auch die längst überfällige Todesstrafe für Intels positiv geriatrische Frontside-Bus-Architektur ist.

Die radikale Veränderung in der Systembandbreitensituation von Intel, die Intels neuer QuickPath Interconnect (QPI) darstellt, ist möglicherweise der größte einzelne Faktor, der das Design von Nehalem geprägt hat. Zwischen QuickPath und dem integrierten Speichercontroller von Nehalem kann ein Nehalem-Prozessor auf eine beispiellose Gesamtbandbreite zugreifen, insbesondere bei Implementierungen mit zwei und vier Sockets.

AMD hat den Speichercontroller früher in den Prozessor eingebaut und Hypertransport verwendet.

Nik
quelle
3
Das andere zu berücksichtigende Problem ist die Leistung des Frontside-Busses. Bei so vielen Kernen, so viel Speicher und so großen Programmen wird der Zugriff auf den Speicher kritisch! Wenn die CPU einen Fehler aufweist, um in den Hauptspeicher zu gelangen, wird die Leistung beeinträchtigt. Je mehr Sie Multitasking betreiben, desto wahrscheinlicher ist dies, unabhängig davon, wie groß der On-Chip-Cache wird.
Geoffc
1
In den 8 Jahren seit der Eröffnung dieser Frage im Jahr 2009 haben sich die Dinge geändert. Software kann jetzt viel besser von vielen Kernen profitieren, und dieser Trend wird sich nur fortsetzen.
Contango
1
@Contango Einverstanden, diese Antwort muss aktualisiert werden, um die aktuellen Trends widerzuspiegeln.
18

Ich habe die Erfahrung gemacht, dass ein bis zwei Kerne einen enormen Leistungsvorteil bieten. Plötzlich sperrt ein Programm mit hoher CPU Ihren Computer nicht mehr und macht ihn nicht mehr so ​​langsam. Massiver Unterschied.

Aber zwei vor vier? Für 99% der Menschen macht es keinen Unterschied. Sie müssen viele Programme gleichzeitig ausführen oder Programme verwenden, die mehr als 2 Kerne nutzen können (und realistisch gesehen gibt es nicht so viele davon). Bestimmte Media-Encoder fallen mir ein.

In dieser Hinsicht gibt es auch einen Unterschied zwischen dem Intel Core 2s und dem AMD Phenoms. AMD verwendet Hypertransport, ein Punkt-zu-Punkt-Protokoll, bei dem jeder Kern über eine dedizierte Bandbreite verfügt. Intel Core 2 (aber nicht Core i7 und andere Niehalem-basierte CPUs) verwenden einen Front-Side-Bus, dessen Bandbreite gemeinsam genutzt wird, sodass mehr Kerne um dieselbe Bandbreite konkurrieren.

Dies kann möglicherweise dazu führen, dass ein Quad-Core-Takt (geringfügig) unter bestimmten Umständen langsamer wird. Das Preis-Leistungsverhältnis ist IMHO immer noch mit Dual-Cores. Davon abgesehen habe ich einen Quad-Core.

Peter Mortensen
quelle
1
Der Nehalem verwendet QPI (QuickPathInterconnect), das sich im selben Park befindet wie Hypertransport.
Nik
10

Ich mag, wie Donald Knuth es zusammenfasst :

Für mich sieht es so aus, als wären den Hardware-Designern die Ideen ausgegangen und sie versuchen, die Schuld für den zukünftigen Untergang von Moores Gesetz an die Software-Autoren weiterzugeben, indem sie uns Maschinen geben, die nur auf wenigen Rechnern schneller arbeiten Schlüsselbenchmarks! Es wird mich überhaupt nicht wundern, wenn sich die ganze Multithreading-Idee als Misserfolg herausstellt, schlimmer als der "Itanium" -Ansatz, der so großartig sein sollte - bis sich herausstellte, dass die gewünschten Compiler im Grunde unmöglich zu schreiben waren .

Lassen Sie es mich so ausdrücken: In den letzten 50 Jahren habe ich weit über tausend Programme geschrieben, von denen viele eine beachtliche Größe haben. Ich kann mir nicht einmal fünf dieser Programme vorstellen, die durch Parallelität oder Multithreading spürbar verbessert worden wären. Sicherlich sind zum Beispiel mehrere Prozessoren keine Hilfe für TeX.

Für einige Anwendungen ist es sehr einfach, mehrere Kerne zu nutzen. Einige andere Anwendungen werden jedoch niemals davon profitieren, während andere möglicherweise davon profitieren, wenn die Entwickler sie optimieren (was sehr schwierig ist).

Bastien Léonard
quelle
4
Im Allgemeinen stimme ich zu, dass Multi-Cores TeX selbst nicht helfen würden. Es wäre jedoch ein großer Gewinn für einen grafischen TeX-Editor, der TeX wiederholt aufruft, um die Anzeige zu aktualisieren, während das Dokument bearbeitet wird.
KeithB
3
Dies ist einer jener Orte, an denen mein Herz für Knuth schlägt, aber mein Verstand stimmt nicht ganz überein.
Nik
5

Für meinen Haupt-Desktop bei meinem Arbeitgeber verwende ich einen Dual-Quad-Core-Xeon-Rechner mit 8 GB RAM.

Wenn ich programmiere und über Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (oder 2010) und eine lokale SQL Server Express-Instanz verfüge, läuft alles prima.

Im Vergleich dazu hatte ich zuvor einen Dual-Core und die Dinge begannen zu kriechen, wenn nur Visual Studio, Chrome und Sql Express ausgeführt wurden.

Es hängt davon ab, was Sie mit der Maschine machen. Wenn Sie ein Power-User sind, der Videoschnitt, 3D-Modellierung oder Programmierung mit erheblichen Ressourcen betreibt, dann werden Sie den Quad-Core und viel RAM brauchen.

Jeff Fritz
quelle
1

Für den täglichen Gebrauch und Programme, die nicht mehrkernoptimiert sind, schlägt ein schneller Doppelkern einen langsameren Vierkern.

Mit der Zeit werden Multithread-Apps zur Norm, Quad-Cores werden sich durchsetzen.

Dual-Cores haben immer noch einen komfortablen Vorsprung.

Auxonic
quelle
1

Es hängt davon ab, ob. Wenn Sie Dinge tun, die jeden Kern verwenden, sind 4 Kerne besser (Videobearbeitung, Rendern usw.). Die meisten Leute werden im Moment zwei schnelle Kerne besser finden, da nicht viele Anwendungen geschrieben wurden, um die 4 Kerne voll auszunutzen

David Hayes
quelle
1

Beachten Sie, dass die neuesten i7-Prozessoren die Taktrate der aktiven Kerne tatsächlich erhöhen können, wenn nicht alle benötigt werden. Wenn Sie beispielsweise einen Quad-Core mit 2,4 GHz haben, die Software jedoch nur 2 Kerne benötigt, wird sie möglicherweise automatisch auf 2,8 GHz getaktet (keine tatsächliche Zahl, nur ein Beispiel).

Und die neueste Generation des i7 kann meiner Meinung nach 3 oder 4 Bins takten, wenn nur ein oder zwei Kerne benötigt werden. Als solches bleibt es möglicherweise nicht so ein Kompromiss, wie es derzeit ist ...

jerryjvl
quelle
1

Laut Anandtech.com :

Es läuft alles auf die TDP des Chips oder seinen thermischen Designpunkt hinaus. Je mehr TDP eine Plattform einschränkt, desto mehr können Sie vom Intel Turbo-Modus profitieren. Lass es mich anders ausdrücken; Um vier Kerne in eine 130-W-TDP einzubauen, muss jeder Kern mit einer niedrigeren Taktrate laufen, als wenn wir nur einen Kern bei derselben TDP hätten.

Bei höheren TDPs ist normalerweise genügend thermischer Headroom vorhanden, um die einzelnen Kerne ziemlich hoch laufen zu lassen. Bei niedrigeren TDPs müssen die CPU-Hersteller einen Kompromiss zwischen der Anzahl der Kerne und ihrer Taktrate eingehen - hier können wir Spaß haben.

Dies hängt alles damit zusammen, dass Sie zwischen Kernen (oder Threads) und Kernfrequenz wählen müssen.

Ivo Flipse
quelle
Wäre dies für ein Übertaktungsinteresse relevanter? Guter Artikel trotzdem.
Nik
0

In deinem Fall wäre der Quad-Core besser. Denken Sie daran, je mehr Kerne Sie haben, desto paralleler können Sie arbeiten. Auf Ihrem Dual-Core können Sie möglicherweise eine einzelne App schneller ausführen als das Quad, aber das Quad kann vier Apps schneller ausführen, als Sie es mit Dual-Core können. Wenn eine App für die parallele Verarbeitung (Multithreading) geschrieben wurde, kann die App auf einer Multicore-Architektur besser ausgeführt werden.

Dies ist alles relativ, da ein Quad-Core mit 100 Mhz keinen Dual-Core mit 4 Ghz liefert. Im Allgemeinen ist es jedoch umso besser, je mehr Kerne vorhanden sind.

Joseph
quelle
Sie gehen davon aus, dass eine Anwendung, die mit zwei Kernen arbeiten kann, auch vier Kerne nutzen kann. Das stimmt nicht immer.
Nik
@nik Nein, das bin ich nicht. Ich habe gesagt, dass eine Multithread-App auf einer Multicore-Architektur eine bessere Leistung erbringt. Ich habe nichts über den proportionalen Gewinn über die Anzahl der Kerne angegeben, die Sie haben.
Joseph
0

Hängt davon ab, was Sie tun und welche Funktionen Ihr Betriebssystem und Ihre Anwendungen bieten.

Wenn Sie ein leichtes Betriebssystem haben und eine einzelne CPU-gebundene Anwendung ausführen, die nur einen Prozessor verwenden kann, sind zwei Prozessoren mit höherer Geschwindigkeit die bessere Wahl.

Andernfalls, wenn das Betriebssystem alle Kerne effektiv einplanen kann und Sie viele Anwendungen oder Anwendungen ausführen, die mehr als einen Prozessor als langsamen Quad-Core verwenden können, ist eine bessere Leistung bei geringerem Stromverbrauch und damit geringerer Wärmeabgabe zu erwarten.

mas
quelle
0

Wenn Sie viel Videokodierung, 3D-Rendering oder verteilten Quellcode erstellen, ist es umso besser, je mehr Kerne vorhanden sind. Sie werden einen deutlichen Leistungsunterschied bei diesen Anwendungstypen feststellen, wenn Sie von 1 auf 2 auf 4 auf 8 Kerne wechseln.

Andernfalls profitieren Standardanwendungen nicht wirklich von mehr Kernen. Sogar Spiele werden nicht so viele Kerne ausnutzen. IMO, Sie sind besser dran, das Geld für eine bessere Grafikkarte auszugeben.

Nick Haddad
quelle
0

Hängt davon ab.

Besonders gern.

Mit nur zwei Kernen können Sie leicht einen Quad-Core finden. Dies hängt zum Teil mit dem Betriebssystem und dem Design der Software zusammen. Darüber hinaus teilen sie noch alles andere, insbesondere den Speicher, die Festplatte und die Geräte.

Sie wissen, dass das Betriebssystem nicht (merklich) schneller bootet und die Webseiten nicht schneller heruntergeladen werden (möglicherweise werden sie jedoch schneller gezeichnet).

dlamblin
quelle