Ist eine höhere Kernanzahl oder höhere Taktrate für die Leistung eines Computers vorteilhafter? [geschlossen]

16

Mit sinkenden Siliziumkosten und steigenden Verbraucherbedürfnissen scheinen die Hersteller eines von zwei Dingen voranzutreiben: Taktrate und / oder Kernanzahl. Mit der Entwicklung der Dinge scheint die Taktrate der Prozessoren nicht mehr zu steigen, sondern die Anzahl der Prozessorkerne.

Ich erinnere mich noch an ein paar Jahre zuvor, als ich einen schönen schnellen Single-Core-Pentium-4-Prozessor hatte. Schneller Vorlauf bis heute, und ich glaube nicht, dass Sie einen Single-Core-Prozessor kaufen können (ganz zu schweigen von der zunehmenden Zunahme von Multicore-Prozessoren auch in Mobiltelefonen ). So wie es läuft, werden wir in ein paar Jahren möglicherweise Computer mit Hunderten von Kernen finden (und ich weiß, dass viele Betriebssysteme bereits Unterstützung dafür haben).

Ist es für die Gesamtleistung eines Systems vorteilhafter, die Taktrate oder die Anzahl der Kerne zu erhöhen? Nehmen wir an, wir laufen in Hunderten von Kernen zusammen, oder die Taktraten sind zehnmal höher als heute (unabhängig davon, ob dies physisch möglich ist oder nicht).

Welche gängigen Prozesse (z. B. Verschlüsselung, Dateikomprimierung, Bild- / Videobearbeitung) profitieren am meisten von den einen oder anderen? Gibt es Prozesse, die möglich sind , aber derzeit aus technischen Gründen nicht durch eine Erhöhung der Parallelität beschleunigt werden?


Angenommen, der hypothetische Prozessor hat genau dasselbe Kerndesign (Wortgröße, Adressbitbreite, Speicherbusgröße, Cache usw.), so dass die einzigen Variablen hier die Taktgeschwindigkeit und die Kernanzahl sind. Und wieder spreche ich nicht von einem, zwei oder sogar vier Kernen - stellen Sie sich Dutzende bis Hunderte vor.

Durchbruch
quelle
9
Es hängt alles davon ab, was Sie auf diesem Computer tun möchten. Mehrere Kerne sind für einige Dinge gut, höhere Taktraten für andere.
ChrisF
@ ChrisF Ich persönlich kenne die Antwort, aber ich frage dies aus zwei Gründen. Das erste ist, diese Informationen auf der Website zu haben (ich habe sie nur in Bezug auf Dual- oder Quad-Core-Prozessoren gesehen), und das zweite ist, den Menschen eine Vorstellung davon zu geben, was "in Zukunft" kommen wird und wie Zeigen Sie, wie die Anwendungen auf beiden Seiten der Gleichung lauten.
Durchbruch
3
Ich würde sagen, dass dies zwar eine gute Frage ist, über die man bei einem Bier sprechen kann, es aber so gut wie keine gute Stapelaustauschfrage ist.
EBGreen
1
Es gibt zu viele Variablen, Was-wäre-wenn-Faktoren und andere Parameter + fortlaufende technologische Änderungen, um eine prägnante Antwort zu entwickeln, die für mehr als einen bestimmten Zeitraum relevant ist. Dies ist ein interessantes Thema für ein Forum oder einen Blog, aber nicht als 'Antwort' festzuhalten. Ich habe dafür gestimmt, aus diesem Grund zu schließen, also lass das Flammen beginnen !!!
Linker3000

Antworten:

12

Es gibt zwei grundlegende Situationen, die berücksichtigt werden müssen:

  1. Der Prozessor wird mit einem Computer verwendet, der nur Berechnungen für ein einzelnes Programm ausführt

  2. Der Prozessor wird für mehrere Programme verwendet, die gleichzeitig ausgeführt werden

In der ersten Situation ist die Prozessorgeschwindigkeit wichtiger, da der Benutzer Berechnungen schnell und effizient durchführen möchte. Diese Situationen dienen in der Regel der rechenintensiven Verarbeitung, dh der Berechnung von Primzahlen zur Ver- / Entschlüsselung

Die zweite Möglichkeit besteht darin, mehrere Kerne zu verwenden, da jedes Programm einem eigenen Kern zugeordnet werden kann und sich so gegenseitig aus dem Engpass befreien kann. In der heutigen Welt wird der durchschnittliche Benutzer seinen Computer für mehrere Programme gleichzeitig verwenden, was die Mehrkernverarbeitung zu einer wünschenswerten Sache macht.

Multicore ! = Jedoch in allen Fällen schnellere Geschwindigkeiten oder höhere Leistung. Da die meisten Programme für die Single-Core-Verarbeitung * geschrieben wurden , ist die Taktrate immer noch wichtig. Eine Kombination von beiden muss berücksichtigt werden (zusammen mit vielen anderen Faktoren) .


* Es gibt einige Programme, und hoffentlich werden bald weitere erstellt, in denen mehrere Kerne gleichzeitig verwendet werden können. Die Zukunft der Software liegt in dieser " Parallelen Programmierung ":

Softwareentwickler können sich nicht mehr nur auf die Erhöhung der Taktraten verlassen, um Single-Thread-Anwendungen zu beschleunigen. Um sich einen Wettbewerbsvorteil zu verschaffen, müssen Entwickler lernen, ihre Anwendungen so zu gestalten, dass sie in einer Thread-Umgebung ausgeführt werden. Multi-Core-Architekturen verfügen über ein einzelnes Prozessorpaket, das zwei oder mehr Prozessor- "Ausführungskerne" oder Rechenmodule enthält und mit entsprechender Software die vollständig parallele Ausführung mehrerer Softwarethreads ermöglicht.

- Intel

James Mertz
quelle
Beste Antwort, die ich bisher gesehen habe, +1. Wissen Sie, ob es möglich ist, die Verschlüsselung / Entschlüsselung mit einem parallelen Algorithmus zu beschleunigen (oder gibt es einen solchen überhaupt)?
Durchbruch
2

Ich persönlich denke, Core Count ist der richtige Weg. Die Softwareentwicklung hat sich auf vernetzte Systeme verlagert, sodass Ihnen nicht mehr nur lokale Ressourcen zur Verfügung stehen. Der wichtigste Faktor für Ihre derzeitige Arbeitsweise ist, zu welchem Netzwerk Sie gehören.

Beachten Sie die Verlagerung auf mobiles Breitband, konstante Konnektivität, Fernzugriff usw. usw. Damit erfordert eine konstante Konnektivität eine Akkulaufzeit. Während es fraglich ist, welche CPU-Faktoren für die Akkulaufzeit optimaler sind (Sie haben die klassische Optimierungsgleichung von Arbeitswert und Zeit), denke ich persönlich, wenn Sie einen auswählen müssten, würde ich mehr Kerne auswählen.

Mit Intel können Sie jetzt Cores bei Bedarf mit Strom versorgen. Die Option, mehr Kerne zu verwenden, ist zwar nicht so optimal wie das Ausschalten ohne Prozessorkerne, bietet Ihnen jedoch die Flexibilität, mehr Anwendungen auf derselben Hardwareplattform auszuführen.

surfasb
quelle
2

Wie ChrisF in einem Kommentar erwähnt, kommt es darauf an. Da solche Antworten jedoch keine wirklichen Antworten sind, werde ich versuchen, einige Szenarien zu finden, in denen eines vorteilhafter ist als das andere:

In den meisten der von Ihnen erwähnten allgemeinen Prozesse spielt die Anzahl der Kerne keine große Rolle, da der größte Teil der Arbeit in einem einzelnen Thread ausgeführt wird, der (gleichzeitig) nur auf einem einzelnen Kern ausgeführt werden kann. Bei solchen Prozessen ist ein einzelner, aber sehr leistungsfähiger Kern besser als ein paar langsamere Kerne. Ausnahmen können sowohl die Verschlüsselung als auch die Dateikomprimierung sein. Dies hängt jedoch stark davon ab, welche Algorithmen verwendet werden und ob sie parallel ausgeführt werden können.

Sie haben jedoch eine der am häufigsten auf Computern ausgeführten Aufgaben vergessen: das Durchsuchen. Mehrere gängige Browser öffnen jede Registerkarte in einem separaten Prozess (Chrome ist der einzige, von dem ich mir sicher bin, dass er dies tut, da es derjenige ist, den ich verwende). Wenn also auf einem Quad-Core-System vier Registerkarten geöffnet sind, kann jedes Browserfenster (in der Theorie) haben einen Kern "für sich selbst" (ignorieren von Betriebssystem-Threads und anderen Dingen) und sind so schnell, als ob keine anderen Browser-Registerkarten / -Fenster geöffnet wären. Für Benutzer, die mit vielen gleichzeitig geöffneten Registerkarten surfen, kann dies eine erhebliche Leistungsverbesserung darstellen, ohne dass extrem schnelle CPU-Kerne erstellt werden müssen.

Der Schlüssel zum Erkennen, ob ein Multi-Core-System mit langsameren Kernen schneller ist als ein Single-Core-System mit schnellem Kern, ist das Erkennen, ob Sie viele verschiedene Dinge gleichzeitig ausführen oder einige, aber schwere Dinge . Da dies von Benutzer zu Benutzer sehr unterschiedlich sein wird, gilt dies auch für die Antwort auf Ihre Frage.


Die anderen Antworten machen auch ein paar wichtige Punkte:

  • Bei der Prozessorleistung geht es nicht mehr nur um die Taktrate oder die Anzahl der Kerne - andere Teile des Prozessors werden zu Engpässen, wenn sich Taktrate und Kernanzahl verbessern.
  • Für die meisten Benutzer ist die Prozessorleistung nicht einmal der Flaschenhals. Wenn Sie Ihre Zeit in gehosteten Anwendungen wie Google Text & Tabellen verbringen, ist die Geschwindigkeit Ihrer Netzwerkkarte wichtiger als die Geschwindigkeit Ihrer Prozessorkerne. Wenn Sie hochauflösendes Filmmaterial ansehen oder bearbeiten, ist die Festplattenleistung von größerer Bedeutung. Etc...
Tomas Aschan
quelle
+1 für das Einbringen einiger Überlegungen und das Ausarbeiten von Erklärungen, aber ich möchte auf eines hinweisen: Ja, einige Browser ordnen jede Registerkarte einem eigenen Prozess zu , aber dies geschieht nur, wenn der Prozess abstürzt. Die meisten Browser führen mindestens jede Registerkarte in einem separaten Thread aus, und Betriebssysteme können mehrere Threads (vom selben Prozess) auf verschiedenen Kernen ausführen.
Durchbruch
IE 9 führt die Multiprozessmethode aus. Ich glaube jedoch, dass sie eine festgelegte Anzahl von Prozessen verwenden und einfach alle Registerkarten zwischen diesen Prozessen teilen. Dies führt zu weitaus weniger Prozessen, als Chrome letztendlich verursachen kann, und bedeutet gleichzeitig, dass Sie nur ein paar Tabs verlieren, wenn sich alles in einem Redmond-Haufen befindet.
music2myear
Oh, und es kommt auch auf die Software an. Während das Betriebssystem in der Regel das Datenverkehrsmanagement übernimmt und wartende Threads an verfügbare Kerne sendet (das mentale Bild von match.com ist in meinem verrückten Silizium enthalten), werden Programme, die selbst mehrere Threads haben (die meisten Adobe Creative Suite-Produkte und andere Produkte werden gut unterstützt), ausgeführt (moderne Multimedia-Entwicklungstools) werden die Fähigkeiten eines Multi-Core-Systems viel besser ausnutzen.
music2myear
2

Erstens sind die Single-Core-Geschwindigkeiten nicht so stark gesunken. Der einzige Grund, warum Intels aktuelle Sandy Bridge-Produktpalette im Megahertz-Bereich nicht die besten Single-Core-Pentium-4-Modelle hervorhebt, ist, dass Intel nicht konkurrenzfähig ist und daher keine großen Anstrengungen unternehmen muss.

Zweitens ist die Taktrate nicht alles, selbst auf einem einzelnen Kern. Auch bei der Anwendungsleistung ist die aktuelle Intel-Aufstellung im Vergleich zum Pentium 4 pro Taktzyklus um etwa 50% schneller . Die Gründe, warum Sandy Bridge pro Taktzyklus schneller ist als Pentium 4 (Prescott ist die letzte Inkarnation davon), sind vielfältig, aber es gibt einen intelligenten Speichercontroller vor dem Abrufen, einen Speichercontroller auf demselben Chip mit CPU und eine höhere Instruction Level Parallelism (ILP). dazu beitragen.

Parallelität auf Befehlsebene bedeutet im Grunde, dass der Prozessor die Befehle und ihre Abhängigkeiten betrachtet, und wenn zwei Befehle nicht voneinander abhängig sind, kann die CPU gleichzeitig mit dem Laden von Daten für beide beginnen und möglicherweise die Befehle neu ordnen, von den Daten für einen von sie kommen vor dem anderen an.

Drittens profitieren einige Anwendungen in der Tat sehr gut von mehreren Kernen. Beispielsweise bevorzugt Photoshop fast immer mehr Kerne als die Betriebsfrequenz. Dh Selbst ein langsamer Quad-Core schlägt fast immer einen Dual-Core-Chip und ein Dual-Core-Chip einen Single-Core-Chip. Tri-Cores sind eine gemischte Tasche, sie gewinnen oft Dual-Cores, aber nicht immer.

Im Allgemeinen profitieren Anwendungen, die dieselbe Art von Operationen für viele verschiedene Datensätze ausführen, am meisten von der Parallelität. Zum Beispiel können Videokomprimierung oder Fotobearbeitung oft recht einfach parallelisiert werden. Andererseits haben sich Computerspiele als schwer parallelisierbar erwiesen. Die Grafiken auf ihnen passen natürlich sehr gut zusammen, aber dieser Teil wird auf der GPU ausgeführt, nicht auf der CPU. Die verbleibende Physik, die Buchhaltung in der Spielewelt und die AIs lassen sich weniger leicht parallelisieren.

Zds
quelle
1

Tatsächlich ist heute der wichtigste Faktor nicht die Taktrate des Prozessors. Es wurden viele neue Funktionen eingeführt, seit dieser "Vergleichsfaktor" in Vergessenheit geriet.

Heute müssen Sie sich viele Faktoren ansehen, um Rückschlüsse auf die Leistung der Prozessoren zu ziehen. Dinge wie:

  • Anzahl der Kerne
  • Anzahl der parallel laufenden Threads
  • Prozessorfamilie (Dual Core, Pentium, Core i / Calpella, Sandy Bridge usw.)
  • Prozessorgeneration (2., 6. usw.) und dann
  • Prozessortakt.

Wenn ich die Prozessorgeschwindigkeiten vergleichen möchte, konsultiere ich die Passmark der Notebookcheck- Benchmarktabellen. Benchmarks sind meiner Meinung nach der beste Faktor, um die Prozessorgeschwindigkeit und -leistung zu messen und zu vergleichen.

Diogo
quelle
Ja, aber zur Vereinfachung nehmen wir an, dass alle anderen Werte gleich sind (gleiche Cache-Größe pro Kern, gleiche Adressbusbreite, gleiche Wortgröße usw.). Die Kerne selbst sind genau gleich, es ist nur a) wie viele oder b) wie schnell.
Durchbruch
Ähm, die Prozessorfamilie und -generation haben nichts mit der Prozessorgeschwindigkeit zu tun. Immerhin sind die Atom-Prozesse viel neuer als die P4-Prozesse oder die Core- und Core2-Prozesse, aber niemand würde jemals behaupten, dass sie schneller sind. Andere Dinge, die sich direkter auf die CPU-Geschwindigkeit auswirken, sind der On-Die-Cache, die Anzahl der Register, die Architektur des Chips, die Größe der Leiterbahnen (nm-Herstellungsprozess), Gleitkommaoperationsfähigkeiten usw.
music2myear
@ music2myear - Wenn ich mich an die Generation wende, spreche ich über die Familie ( superuser.com/questions/314757/… ). Eigentlich sind Atom D525 besser als viele Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo