In anderen Fragen wurde gezeigt , dass Mehrkernprozessoren aufgrund des Zustands von Computeranwendungen unter sinkenden Renditen leiden. Ist das in der heutigen Welt noch so?
Umfassen die meisten neuen Anwendungen Multithreading und nutzen daher mehrere Kerne? Wenn nicht, können die neueren 64-Bit-Betriebssysteme die Kerne nutzen, indem sie Aufgaben / Prozesse verschiedenen Kernen zuweisen? Oder leiden Multi-Core-Prozessoren weiterhin unter den gleichen (oder ähnlichen) sinkenden Renditen?
Bitte sichern Sie alle Ansprüche mit Referenzen.
cpu
multi-core
community-faq-proposed
Rishimaharaj
quelle
quelle
Antworten:
Es hängt stark davon ab, was Sie tun.
Für reguläres altes Word und Excel und Minesweeper und was auch immer deine Mutter sonst noch benutzt, ein Kern ist immer noch genug und mehr als zwei sind ein Overkill. Diese Arten von Anwendungen verbringen die meiste Zeit im Leerlauf und warten auf Benutzereingaben.
Für Spiele profitieren Sie von mindestens zwei. Danach kommt es auf das Spiel an. Theoretisch könnten Sie jeden KI-Gegner in einem separaten Thread ausführen, aber die zentrale Spiellogik lässt sich nicht einfach parallelisieren - Sie benötigen einen Ort, an dem alle Ergebnisse zu einem kohärenten Spielzustand zusammengefasst werden. Es gibt also normalerweise einen "Haupt" -Thread, auf den jeder wartet.
Für Multimedia, Real Number Crunching und Wissenschaft zählt jeder Kern. Dies sind Aufgaben, die entweder von Natur aus Multithreading-Aufgaben sind oder einfach ausgeführt werden können, und die Entwickler haben einen starken Anreiz, die gesamte verfügbare Verarbeitungsleistung zu nutzen.
Hauptbenutzer mögen Multitasking. Torrent, VirtualBox, Screenshot, Video, Minecraft und Surfen im Internet werden alle gleichzeitig ausgeführt. Sie werden also davon profitieren, dass jede CPU-hungrige App ihren eigenen Kern hat. Heutzutage ist es beliebt, dein Spiel live zu streamen. Das sind also zwei Kerne für das Spiel, mindestens einer für den Encoder-Thread und mindestens einer für den Rest des Systems. Das sind mindestens 4 Kerne.
quelle
Ich fürchte, die Antwort lautet immer noch, wie immer: "Es hängt davon ab, was Sie tun."
Ja, das Hinzufügen von immer mehr Kernen führt zu sinkenden Erträgen, und dies ist immer dann der Fall, wenn Sie jeweils nur eine Anwendung ausführen .
Selbst in einer gut gemachten Multithread-Anwendung werden viele der Aufgaben ausgeführt, die ausgeführt werden, um auf die langsamsten Komponenten in der Maschine zu warten - Festplatte, Netzwerk - ohne die offensichtliche Leistung für den Benutzer zu beeinträchtigen. Diese können nicht durch eine stärkere Parallelisierung verbessert werden, so dass eine theoretische Beschleunigungsgrenze für praktische Zwecke nicht erreichbar ist.
Es ist erwähnenswert, dass es nur wenige "große" Anwendungen gibt, die nicht über mehrere Threads verfügen (sehen Sie sich einfach das Task-Manager-Äquivalent Ihres Betriebssystems an, es sollte Ihnen sagen können, wie viele zu jedem Prozess gehören - mein Firefox verwendet derzeit beispielsweise 31 ).
Natürlich ist das Ausführen mehrerer nicht voneinander abhängiger Anwendungen durch diese Grenzwerte nicht so eingeschränkt. Wenn Sie mehr Kerne hinzufügen, können Sie mehr Anwendungen gleichzeitig ausführen, ohne die Verarbeitungsleistung zu beeinträchtigen (Festplatten-, Netzwerk- usw. Leistung lässt sich jedoch nicht so gut skalieren). In der Praxis ist auch dies mit sinkenden Renditen verbunden, da die Verwaltung der Arbeitsverteilung zwischen Kernen, Kommunikationspipelines usw. unvermeidlich mit einem Overhead verbunden ist.
In diesem Beitrag von Tom's Hardware (aus dem Jahr 2009) wird beispielsweise versucht, die Leistung einiger Multi-Core-Prozessoren unter gleichzeitigen Anwendungen zu untersuchen. Dabei wird ein Spiel neben einem AVG-Scan ausgeführt (beide sind wahrscheinlich Multithread-Prozessoren). Die Quad-, Tri- und Dual-Core-Prozessoren arbeiten nur mit dem Spiel ähnlich, fügen jedoch den gleichzeitigen AVG-Scan hinzu und die Leistung (gemessen am durchschnittlichen FPS) sinkt um 22%, 40% bzw. 59%.
Während ein Quad-Core beim Ausführen einer intensiven Anwendung keine Leistungssteigerung gegenüber einem Dual-Core bot, war er, sobald eine andere intensive Aufgabe auftauchte, doppelt so leistungsfähig. Leider kann ich nicht viel anderes finden, das untersucht, wie gut dies mit mehr Kernen und intensiveren Aufgaben skaliert.
Und dann müssen Sie die modernen Funktionen von Prozessoren wie Intels Turbo Boost / AMDs Turbo Core beachten. Diese besonderen Funktionen ermöglichen es einem Multi-Core-Prozessor, Kerne zu parken (sie in einen langsameren Modus mit geringem Stromverbrauch zu versetzen) und die verbleibende Energie zu verwenden, um die aktiven Kerne zu übertakten. Auf diese Weise kann der Prozessor sich selbst optimieren, um so viel Rechenleistung bereitzustellen möglichst für die Anzahl der Aufgaben, mit denen es präsentiert wird.
quelle
Um dem Feuer Treibstoff hinzuzufügen, habe ich hier gelesen , dass Android tatsächlich durch mehr als einen Kern verlangsamt wird:
quelle
Natürlich hängt es davon ab, was Sie tun, aber ja, es gibt sinkende Renditen.
Einfache, alltägliche Anwendungen wie Textverarbeitung oder Surfen im Internet profitieren nur wenig von mehr als zwei Prozessorkernen. Wissenschaftliche Computer- und Spieleanwendungen nutzen in der Regel vier (oder mehr) Kerne und / oder Hyperthreading-Funktionen besser, da sie so konzipiert sind, dass sie die moderne Hardware optimal nutzen. Der Nutzen von mehr als vier Kernen ist jedoch begrenzt.
Darüber hinaus ist nicht alles rechnergebunden. Das Hinzufügen von Prozessorkernen hilft nicht, wenn Ihre Arbeitslast an E / A gebunden ist. Wenn Sie jemals eine SSD installiert haben, um eine mechanische Festplatte zu ersetzen, wissen Sie wahrscheinlich, dass die tägliche Computerleistung häufig durch den Speicher Ihres Computers eingeschränkt wird. In ausgelasteten Serverumgebungen, in denen eine große Anzahl von Kernen verwendet wird, um dem System die gleichzeitige Verarbeitung einer großen Anzahl von Benutzern und Anforderungen zu ermöglichen, werden spezielle Festplatten-Arrays, SSDs und andere Speichersysteme verwendet, um maximale Leistung unter Last sicherzustellen.
quelle