Beeinflussen mehrere Kerne in der CPU, wie viele Programme ich ausführen kann?

5429
charlie

Ich habe eine Frage zu mehreren Kernen in der CPU. Angenommen, ich arbeite zur gleichen Zeit in einigen Programmen: - Photoshop - Autodesk Maya - Visual Studio - Unreal Engine

Wenn ich mehr Kerne in meiner CPU hätte, würde dies bedeuten, dass diese Programme schneller arbeiten würden (wie jeder Kern für ein Programm usw.).

0

2 Antworten auf die Frage

4
LawrenceC

Betriebssysteme verwenden das Konzept von Prozessen und Threads zum Ausführen von Programmen.

Wenn Sie ein Programm laden, wird ein Prozess erstellt. Der Prozess hat seinen eigenen Speicher und seine Berechtigungsnachweise, und dieser Prozess kann nur in seinen eigenen Speicher lesen und schreiben und über den Kernel tun, was auch immer seine Berechtigungsnachweise zulassen.

Bei einem einzelnen CPU-System durchläuft das Betriebssystem jeden laufenden Prozess und gibt ihm einen Teil der CPU-Zeit (Round-Robin). Nur ein Prozess wird tatsächlich zu einem bestimmten Zeitpunkt ausgeführt. (Wenn ein Prozess auf E / A wartet oder "blockiert" ist, eine sehr häufige Bedingung, wird er übersprungen.)

Ein Prozess kann einen Teil von sich als Thread abspalten. Dies ist im Wesentlichen zwei Teile eines einzelnen Prozesses, der zwei getrennte Windungen auf der CPU hat (alle Threads eines Prozesses "leben" im Prozess und können seinen Speicher sehen).

Ein Prozess kann auch

  • einen anderen separaten, neuen Prozess erzeugen - dh ein separates Programm laden. Windows Explorer erzeugt Prozesse, wenn Programme gestartet werden.
  • Fork einen anderen Prozess - dh eine Kopie von sich selbst erstellen - als separater Prozess (kein Thread) - dies ist bei Unix / Linux-Betriebssystemen üblich.

Wenn mehr als ein CPU-Kern vorhanden ist und ein Prozess auf einem einzelnen Kern beginnt, kann das Betriebssystem seine Threads auf anderen Kernen platzieren. Wenn der Prozess andere Prozesse erzeugt oder forciert, kann er sie auf anderen Kernen als dem übergeordneten Prozess platzieren.

Das Betriebssystem verwaltet die verwendeten Kerne und migriert möglicherweise sogar von Zeit zu Zeit Prozesse transparent auf verschiedene CPUs, um das Gleichgewicht zu halten. Unter Windows und wahrscheinlich auch unter Linux können Sie die CPU-Affinität festlegen, so dass es nur auf bestimmten Kernen bleibt, wenn Sie dies wünschen.

Wenn also die Anwendung Threads und / oder Prozesse zur Ausführung ihrer Arbeit erzeugt, profitiert sie von mehreren CPU-Kernen. Wenn dies nicht der Fall ist, wird dieses spezifische Programm nicht ausgeführt. Ihr Betriebssystem weist anderen Kernen weiterhin andere Programme zu. Dies kann bedeuten, dass andere Programme weniger Einfluss auf Ihr Single-Threaded-Einzelprozessprogramm haben.

1
Rsya Studios

Es hängt davon ab, ob die Anwendung die Kerne verwendet. Für das Rendern wie die von Ihnen aufgelisteten Programme dann yes, sollten diese Anwendungen die meisten Kerne verwenden, damit das Programm schneller abschneidet. Es verteilt die Last auf alle verwendeten Kerne.

Wenn Sie mehrere prozessorintensive Aufgaben in mehreren Anwendungen gleichzeitig ausführen, wird dies beschleunigt (vorausgesetzt, Sie verfügen über ausreichend RAM).

(wie jeder Kern für ein Programm usw.)

Ähnlich wie alle Programme, die auf alle Kerne verteilt sind.

Bei Spielen (moderne) werden jedoch nur etwa 4 Kerne verwendet, ganz zu schweigen von den älteren Spielen. Wenn Sie also mehr Kerne benötigen, wird dies keinen Unterschied machen.

Kurz gesagt: Zusätzliche Prozessorkerne verbessern die Systemleistung nur bei umfangreichen Anwendungen, die die Verwendung mehrerer Kerne unterstützen. Zusätzliche Kerne verbessern auch das Multitasking. Um ein leichteres System (kleinere Anwendungen wie das Surfen im Internet) schneller zu machen, benötigen Sie stattdessen eine höhere Taktrate.

Ein guter Punkt, der die Tatsache hervorhebt, dass Single-Threaded-Programme von einer höheren CPU-Geschwindigkeit im Vergleich zu mehreren Kernen profitieren. Twisty Impersonator vor 9 Jahren 1