Mehrere Kerne = besseres Multitasking?

1779
Taylor Huston

Im Besonderen betrachte ich entweder den i5-3570k oder den FX-8350, aber ich musste an eine allgemeinere spezifische Frage denken, wie mehrere Kerne allgemeines Multitasking verbessern können.

Lesen Sie viele Bewertungen, Benchmarks usw., alle sagen im Grunde dasselbe: Der schneller getaktete 4core I5 ​​schlägt in den meisten Anwendungen die langsamer getakteten 8core-FX, es sei denn, diese Anwendung ist speziell für mehr als 4 Kerne codiert. Spiele laufen besonders auf dem i5 besser.

Beim Lesen habe ich jedoch festgestellt, dass so ziemlich alle Benchmarks im luftleeren Raum durchgeführt werden. Das heißt, dass nur Benchmark oder Software getestet wird. Das ist zwar gut für das Testen dieser spezifischen Software, aber es ist kaum ein reales Szenario.

Zum Beispiel kann ich an einem beliebigen Tag während des Tages mehrere Browser mit mehreren Registerkarten öffnen, vielleicht Photoshop oder Visual Studio, mehrere Hintergrundprogramme (Antivirus, Steam, Keepass usw.). Und das ist an einem hellen Tag.

Meine Frage ist also: Theoretisch, während der schnellere 4core einzelne Software schneller von sich aus ausführen kann, kann ein 8core-Prozessor nicht besser mehrere Softwarekomponenten ausführen, auch wenn diese nicht notwendigerweise gleichzeitig auf 8core optimiert sind.

3
Theoretisch aber hängt vieles davon ab, wie gut das Betriebssystem bei der Verteilung von Anwendungen auf die verschiedenen Kerne ist. ChrisF vor 10 Jahren 0

2 Antworten auf die Frage

2
trapezoid

Linux-CPU-Last

Eine nützliche Maßnahme ist das Linux-Konzept der CPU-Last . Angenommen, jeder CPU-Kern enthält grundsätzlich 1,00 verfügbare Ladeeinheiten, und jede Aufgabe, die zu 100% eines Kerns als 1,00 Ladeeinheiten ausgeführt wird. Für einen verarbeitungsintensiven Server ist die ideale Last wahrscheinlich genau die Anzahl der CPU-Kerne (4,00 Last für 4 CPU-Kerne).

Eine ausgelastete Schleife (etwa "while (true)") kann 100% einer CPU beanspruchen, dh 1,00 Ladeeinheiten. Ein Single-Threaded-Benchmark erreicht ebenfalls einen Höchststand von 1,00. Ein Multi-Core-optimierter Benchmark kann mehr Kerne beanspruchen, bis zu 8,00 für den FX-8350.

Die meisten Ihrer Apps (Chrome + Firefox Open, Photoshop, Visual Studio) verbrauchen jedoch nicht so viel CPU, wenn sie im Hintergrund ausgeführt werden. Sie können zwar auf mehreren Kernen laufen, aber wenn sie nur 10% der verfügbaren Zeit (0,10 Ladeeinheiten) beanspruchen, summieren sich diese vier Apps nur zu einer Belastung von 0,40 und Sie haben wenig Vorteil, wenn Sie mehr als einen CPU-Kern haben. In ähnlicher Weise beanspruchen Anwendungen, die auf Festplatten- oder Netzwerkzugriffen blockieren, keine CPU-Zeit, während sie warten.

Durchschnittliche Last> 4.00

In Fällen, in denen die Anwendungslast zwischen 4,00 und 8,00 liegt, ist dies wahrscheinlich, wenn die Leistung des FX-8350 herausragend ist. Eine Last von 5,00 für eine 4-Kern-CPU könnte zu heftigen Konflikten für die CPU-Ressourcen führen, wobei der Task-Wechsel zwischen Tasks den damit verbundenen Overhead verstärkt.

Durchschnittslast <4,00

Ihre Frage scheint die Zeiten zu sein, in denen die Mathematik nicht ganz so eindeutig ist: ob 8 Kerne bei einer Arbeitslast unter 4,00 besser wären. Bei einer relativ konstanten Serverauslastung können Sie einige Benchmarks ausführen und feststellen, ob tatsächlich ein Vorteil vorliegt. Für eine ständig wechselnde tägliche Rechenarbeit gibt es keinen eindeutigen Gewinner.

1
LawrenceC

Dies hängt sehr stark von der Anwendung, dem Betriebssystem und der Ausführung der Arbeit ab.

Wenn eine Anwendung als Single-Threading konzipiert ist, können keine zusätzlichen Kerne die Leistung verbessern. Sie können jedoch weitere Anwendungen mit den anderen Kernen ausführen, wenn das Betriebssystem intelligent genug ist, um die Arbeit auf diese Weise zu verteilen. Daher können zusätzliche Kerne einen kleinen zusätzlichen Vorteil bieten, insbesondere für mehrere Anwendungen, die gleichzeitig ausgeführt werden.

Zusätzliche Kerne bieten keine weiteren E / A-Funktionen. Wenn es sich bei einer Anwendung hauptsächlich um eine E / A-gebundene Leistungssteigerung durch zusätzliche Kerne handelt, ist dies möglicherweise nicht wesentlich.