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.