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.
Antworten:
Es gibt zwei grundlegende Situationen, die berücksichtigt werden müssen:
Der Prozessor wird mit einem Computer verwendet, der nur Berechnungen für ein einzelnes Programm ausführt
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 ":
quelle
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.
quelle
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:
quelle
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.
quelle
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:
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.
quelle