Single Threaded Qaud Core gegen Hyper-Threading Dual Core [Duplikat]

10

Nehmen wir an, wir haben zwei CPUs, eine ist Quad Core 3,2 GHz mit 4 Kernen und wir haben einen Dual Core 3,2 GHz mit 2 Kernen mit 2 Threads in jedem Kern (Hyper-Threading). Als Programmierer gehe ich davon aus, dass die 4-Kerne-4-Threads schneller als die 2-Kerne-4-Threads arbeiten sollten, da die zweite CPU zwischen den Threads wechseln muss, um 4 Kerne zu emulieren, während die erste keine solche Umschaltung durchführen muss Kern kann unabhängig und individuell durchführen.

Ich möchte bestätigen, dass meine Annahme wahr ist. Wenn nicht, erklären Sie bitte, warum einer besser ist als der andere.

David
quelle
3
Downvote, weil eine kurze Google-Suche (Wikipedia) die Antwort gegeben hätte.
Werner Henze
4
@WernerHenze während das, was Sie sagen, wahr ist, möchten wir, dass die Leute SuperUser-Ergebnisse sehen, wenn sie solche Sachen googeln :)
Shekhar

Antworten:

10

Ich glaube, das ist wahr - da Hyper-Threading einige Elemente gemeinsam hat - insbesondere die Hauptausführungsressourcen -, können Sie 4 vollständige Threads gleichzeitig ausführen, anstatt darauf zu warten, dass diese Ressourcen freigegeben werden.

Der Punkt von HT ist, eine bessere Leistung mit einer geringeren Nutzung der Chipfläche zu erzielen - Ihr Quad-Core wäre im Allgemeinen ein größerer Chip - etwa doppelt so groß wie ein Nicht-HT-Dual-Core-Chip, während ein HT-Dual-Core-Chip ungefähr wäre 5% größer. Der Quad-Core könnte unter der richtigen Arbeitslast bis zu doppelt so schnell sein (allerdings unwahrscheinlich, da in den meisten Fällen wahrscheinlich nicht 4 Threads mit voller Kapazität ausgeführt werden), während der Dual-Core-HT-Prozessor 15 bis 30% besser sehen würde Leistung ( laut Wikipedia ) als ein Dual-Core-Nicht-HT-Prozessor.

Mehr tatsächliche Kerne sind normalerweise besser.

Gesellenfreak
quelle
1
HT-Prozessor würde 15-30% sehen ... Sie Schlüssel hier. HT ist kein Ersatz für einen echten zweiten Kern (oder 2 oder 4 usw.)
Austin T French
1
Mehr CPUs mit mehr Kernen und Hyper-Threading wären noch besser ...: D
Keltari
Es ist wichtig zu beachten, dass der Hauptgrund für die Leistungsverbesserung mit HT darin besteht, dass die CPU selten voll ausgelastet ist. Das heißt, ein einzelner Thread verarbeitet selten Daten mit jedem CPU-Zyklus. Mit HT kann die CPU während dieser ansonsten nicht verwendeten Zyklen einen zweiten Thread planen. Für den Wechsel zwischen Facebook und E-Mail kann dies sehr effektiv sein. Je CPU-intensiver jeder Thread ist, desto geringer ist die Leistungsverbesserung.
Thomas
1

Aus Wikipedia :

Beim Hyper-Threading werden bestimmte Bereiche des Prozessors dupliziert - diejenigen, in denen der Architekturstatus gespeichert ist -, jedoch nicht die Hauptausführungsressourcen. Dadurch kann ein Hyper-Threading-Prozessor als der übliche "physische" Prozessor und ein zusätzlicher "logischer" Prozessor für das Host-Betriebssystem angezeigt werden (HTT-unbewusste Betriebssysteme sehen zwei "physische" Prozessoren), sodass das Betriebssystem zwei Threads planen kann oder gleichzeitig und angemessen verarbeitet. Wenn Ausführungsressourcen von der aktuellen Aufgabe in einem Prozessor ohne Hyper-Threading nicht verwendet werden würden, und insbesondere wenn der Prozessor blockiert ist, kann ein mit Hyper-Threading ausgestatteter Prozessor diese Ausführungsressourcen verwenden, um eine andere geplante Aufgabe auszuführen. (Der Prozessor kann aufgrund eines Cache-Fehlers, einer Fehlvorhersage der Verzweigung,

Wenn Sie ein Quad-Core-System haben, können jeweils 4 Threads auf einem vollständigen Core ausgeführt werden. Wenn Sie ein Dual-Core-Hyperthreading-System haben, können jeweils 2 Threads auf einem vollständigen Kern ausgeführt werden. Bei 4 Threads teilen sich die Threads 1 und 2 einen Kern und die Threads 3 und 4 den anderen Kern. Durch Hyperthreading können zwei Threads (nur) parallel ausgeführt werden, wenn sie nicht dieselben Prozessorressourcen verwenden. Im Idealfall erhalten Sie möglicherweise einen hohen Grad an Parallelisierung, aber laut Wikipedia beträgt der Leistungsgewinn nicht 100%, sondern nur 15 bis 30%.

Werner Henze
quelle
1

Beim Hyper-Threading die Leerlaufzeit des Kerns für Aufgabe A (der Kern hätte eine Anforderung an die Festplatte senden können, um zu warten, bis die Festplatte den Bereich der Platten durchsucht, die Daten gelesen und an den Kern zurückgesendet hat ) wird ausgenutzt, um eine andere Aufgabe auszuführenB. Wenn TaskB vom sogenannten Thread 2 bedient wird und die Datenabrufanforderung von TaskA abgeschlossen ist, muss TaskA noch warten, bis der Kern Thread 2 beendet hat. Beide Threads können nicht gleichzeitig in einem Kern ausgeführt werden. Auch hier nutzt HT die Geschwindigkeitsinkongruenz zwischen dem Kern / Prozessor und den verschiedenen Subsystemen in Ihrem Computer aus. HT nutzt Ihre Kerne mit voller Kapazität ... es ist wie mit voller Kapazität ausgelastet. Wenn Sie also vier Registerkarten in Ihrem Browser öffnen, hat jede Registerkarte einen Kern in einem 4-Kern-System und zwei Registerkarten müssen einen Kern in einem 2-Kern-System gemeinsam nutzen.

Siva
quelle