Was ist der Unterschied zwischen Multicore Proc und Multiproc System?

4939
bAN

Ich frage mich, was der Unterschied zwischen einem Dual-Core-Computer und einem Computer mit zwei Prozessoren auf der Hauptplatine ist. Ich denke, es hängt mit den Threads zusammen, aber ich verstehe das nicht sehr gut.

17

5 Antworten auf die Frage

18
John Fouhy

Mehrere Prozessoren lassen Ihren Computer buchstäblich zwei Dinge gleichzeitig tun (anstatt nur scheinbar zwei Dinge gleichzeitig zu tun, sondern tatsächlich nur sehr schnell zwischen Aufgaben zu wechseln).

Mehrere Kerne sind gleich. Der Vorteil mehrerer Kerne gegenüber mehreren Prozessoren besteht darin, dass sie einige Bits der CPU gemeinsam nutzen, z. B. den Second-Level-Cache. Dadurch können sie noch effizienter arbeiten, wenn sie über gemeinsame Daten verfügen. Dies macht sie viel billiger in der Herstellung. Eine einzelne Dual-Core-CPU benötigt auch weniger Platz als zwei Single-Core-CPUs. Dies ist heutzutage ein wichtiger Faktor, da alle auf Laptops wechseln.

Es kann einige Leistungsunterschiede geben, aber nichts, was Sie wahrscheinlich bemerken werden.

Sie benötigen nicht nur weniger Platz, sondern erzeugen auch weniger Wärme (weniger Stromverbrauch) und benötigen nur einen Lüfter. CarlF vor 12 Jahren 2
11
claws

Dieses Bild zeigt den Unterschied zwischen Multiprozessor, Hyper-Threaded und Multi Core:

3
nik

Sie sollten mit Multi-Core- und Multithread- Artikeln bei Wikipedia beginnen.

Die Verknüpfung für "Der Unterschied zwischen Multithread- und Multicore-Programmierung" ist unterbrochen. SparkAndShine vor 7 Jahren 1
2
Luke

Nun, es geht darum, horizontal statt vertikal zu skalieren. Früher machten sie die CPU schneller und schneller. Im Laufe der Zeit stieg die Geschwindigkeit der CPU von nur wenigen Megahertz auf Supergeschwindigkeiten von bis zu 3 Gigahertz. Als die 3-Gigahertz-Geschwindigkeit erreicht war, hatten die CPU-Hersteller jedoch ein Limit gefunden, in dem sie die Geschwindigkeit eines einzelnen CPU-Kerns steigern konnten.

Während dieses Geschwindigkeitsrennen stattfand, wurden für diejenigen Anwendungen, die mehr Strom benötigten (wie Server und CGI-Renderfarmen), die Multi-Socket-CPU-Motherboards eingeführt. Dies erlaubt es, mehr als eine CPU (normalerweise zwei) auf dem Motherboard zu platzieren. Betriebssysteme, die mehrere CPUs gleichzeitig verwenden konnten, konnten Software ausführen, die diese Funktion nutzte, indem sie die Last auf diese beiden CPUs verteilten, wodurch die Ausführungsgeschwindigkeit erhöht wurde.

Schneller Vorlauf bis zum heutigen Tag. Die CPU-Geschwindigkeitsbeschränkung ist etwas erreicht, und anstatt vertikal zu skalieren (um sie schneller zu machen), beginnen CPU-Hersteller mit dem horizontalen Skalieren, indem sie mehrere Kerne auf einem einzigen Chip platzieren. Derzeit sind Dual-Core-Chips sehr verbreitet, und bald werden die Quad-Cores der Standard sein. Stellen Sie sich jetzt vor, Sie hätten zwei Quad-Cores auf einem einzigen Motherboard platziert. Dies würde bedeuten, dass das Betriebssystem Zugriff auf 8 CPUs hat, die alle mit etwa 3 Gigahertz arbeiten.

Neben Multi-Core-CPUs gibt es auch eine "falsche" Dual-Core-CPU, die eine als "Hyper-Threading" bezeichnete Technologie verwendet. Beim Hyper-Threading emuliert die CPU die Anwesenheit von zwei CPUs, wenn tatsächlich nur ein Kern vorhanden ist. Die CPU weiß, wie sie die normalerweise ausfallende Zeit ausnutzt, indem sie Anweisungen auf eine bestimmte Art und Weise einplant und so die Effizienz erhöht.

-1: Diese Antwort hat viele Ungenauigkeiten. (1) 3 GHz ist keine "Geschwindigkeitsgrenze". Es gibt Prozessoren, die bei höheren Frequenzen als 3 GHz laufen. Der Hersteller von Limit-CPU-Prozessoren war auf leistungsfähigere Prozessoren innerhalb einer nachhaltigen Energieversorgung ausgerichtet. (2) Aus Ihrem zweiten Absatz geht hervor, dass Motherboards mit mehreren Prozessoren eingeführt wurden, weil das "Tempolimit" erreicht wurde. In der Tat waren Multi-Socket-Motherboards etwa 5-10 Jahre alt (vielleicht sogar noch länger, ich kann kein genaues Datum finden, an dem PC-Server auf Multi-Core-Prozessoren umgestiegen sind). hanleyp vor 14 Jahren 3
Ich weiß, dass es nicht zu 100% korrekt ist, und ich habe versucht, meine Antwort in Laienform zu halten. Es ist nur eine dumme Version, so dass die Leute verstehen, was der Unterschied ist. Ich bin mir sicher, dass die Leute, wenn sie wirklich die Ins und Outs kennenlernen möchten, mehr für sich selbst suchen. Absatz 2 beginnt mit "In der Zwischenzeit", was bedeutet, dass CPU's erstellt wurden, die schnellere Multi-Socket-CPU-Motherboards sind (vor etwa 10 Jahren). Luke vor 14 Jahren 0
Das ist cool. Ich wollte nur aufzeigen, was meiner Meinung nach zu klären ist. Ich mache meine Abstimmung rückgängig, kann es aber nicht, es sei denn, Sie bearbeiten die Antwort irgendwie. hanleyp vor 14 Jahren 0
Ich mache gerne Änderungen, aber was genau soll ich ändern? Dass es CPUs gibt, die auf 3,2 Gigahertz oder vielleicht etwas höher gehen? Können Sie bitte klarstellen? Luke vor 14 Jahren 0
Sie müssen keinen Inhalt ändern, wenn Sie nicht möchten. Ich kann ihn nur dann nicht mehr abstimmen, wenn Sie etwas bearbeiten. hanleyp vor 14 Jahren 0
Ich habe es hier und dort etwas umformuliert. Lassen Sie mich wissen, wenn Sie andere Unstimmigkeiten finden. Luke vor 14 Jahren 0
-1: Sie erklären, warum wir Multicore-Systeme sehen, aber der Fragesteller hat das nicht gefragt. Sie haben den Unterschied zwischen mehreren Kernen und mehreren Prozessoren nicht erklärt. John Fouhy vor 14 Jahren 2
@John Fouhy: Vielleicht hast du recht, aber ich denke, einer hat mit dem anderen zu tun. Den Unterschied zwischen mehreren Kernen und mehreren Prozessoren zu verstehen, hat meiner Meinung nach immer noch mit der Skalierung zu tun, und einer ist einfach ein evolutionärer Schritt nach dem anderen. Luke vor 14 Jahren 0
+1 Als ich gerade anfing, mich mit dem Thema zu beschäftigen, finde ich Ihre Antwort ziemlich hilfreich, wenn Sie (und andere wahrscheinlich) das große Ganze sehen und etwas Selbstvertrauen darüber gewinnen. Die Antwort ist möglicherweise nicht zu 100% genau, erklärt jedoch auf einer sehr grundlegenden Ebene, warum die Prozessorhersteller von einer vertikalen Skala zu einer horizontalen verschoben wurden. Ich habe auch den Kommentar von + 1ed @ hanleyp zur Klärung des Limit-Problems hinzugefügt. Gabriel C. Troia vor 10 Jahren 0
1
jerryjvl

Aus Sicht der Softwareentwicklung gibt es relativ wenig Unterschiede.

Einige falsch geschriebene Multithread-Anwendungen funktionieren möglicherweise versehentlich auf einem Multi-Core-Prozessor, aber nicht auf einem Multiprozessor-Motherboard, aber ich würde darüber nicht zu viel Schlaf verlieren, da ... nun ja, wir reden falsch geschriebene Software.

Der Hauptunterschied zwischen den beiden Szenarien für dieselbe Gesamtzahl verfügbarer Kerne (z. B. 1x 4-Core-Prozessor gegenüber 2x 2-Core-Prozessor) besteht darin, dass im Fall des Multi-Prozessor-Szenarios normalerweise ein größerer Gesamtspeicher vorhanden ist -Bandbreite. Dies bedeutet, dass Sie bei einer speicherintensiven Arbeitslast mit letzterer möglicherweise besser umgehen können. Beachten Sie jedoch, dass das Sperren von Grundelementen tatsächlich etwas langsamer sein kann (abhängig von der Hardwareimplementierung), so dass Algorithmen, die viel Synchronisation verwenden, bei letzterer möglicherweise schlechter abschneiden.

Trotzdem würde ich mich nicht zu sehr um den Unterschied sorgen, denn wenn Sie in einem Bereich arbeiten, in dem dieser Unterschied von Bedeutung ist, dann wissen Sie höchstwahrscheinlich bereits darüber (domänenspezifisches Wissen).