Mehr CPU-Kerne gleich mehr Geschwindigkeit?
Mit Einführung der sogenannten „Dual-Core CPUs“ (Zwei-Kern-Systeme) konnte man erstmals als Privatanwender in den Vorzug von Mehrkern-Computern kommen, die bis dahin teuren Servern oder großen Workstations vorbehalten waren.
Der größte Vorteil eines solchen Systems liegt klar auf der Hand:
Bei „Ein-Kern-Maschinen“ bekommt man gerne mal die berühmt-berüchtigte Sanduhr dargestellt und man hört dann im Hintergrund eine leise Stimme „Rien ne va plus“ sagen (nichts geht mehr), weil der Computer zu 100% ausgelastet ist, und man einfach warten muss, bis uns unwürdigem Benutzer von Windows wieder Rechenleistung zugeteilt wird.
Hat man nun zwei oder mehr Kerne zur Hand, verteilt sich die Grundlast des Systems entsprechend auf mehrere Recheneinheiten und das gesamte Arbeiten wird viel flüssiger und angenehmer, weil die Maschine sehr viel weniger komplett ausgelastet wird und entsprechend weniger oft einfriert.
So weit, so schön!
Aber skaliert sich die Rechenkraft von einem Mehrkernsystem parallel zur Anzahl der Recheneinheiten mit hoch? Vier-Kern-Systeme („Quad-Cores“) sind schon so was wie ein Quasi-Standard. Sechs-Kern-Maschinen („Hexa-Cores“) kann man mit dem nötigen Kleingeld jetzt schon kaufen. AMD führt demnächst unter dem Codenamen „Bulldozer“ die ersten Acht-Kern-Maschinen ein („Octa-Cores“) und bei den Servern sind wir schon bei Zwölf-Kern-Maschinen angekommen.
Leider stimmen die markigen Werbesprüche für solche Computer nur, wenn die Software, die man einsetzt, die vielen Recheneinheiten auch getrennt voneinander ansprechen kann und sich deren Leistung parallel zu Nutze macht. Bei einer 4-Kern-CPU mit je 3,0 GHz. käme man dann theoretisch auf 4 x 3 = 12 GHz. Gesamtleistung…
Im folgenden Beispiel funktioniert das leider nicht:
In der Leistungsansicht von Windows kann man das Problem sehr gut erkennen. Ein Kern wird zu fast 100% ausgelastet (Nummer 2), während sich die restlichen drei Kerne langweilen und nur leichtes „Hintergrundrauschen“ von sich geben (was Windows neben dem eigentlichen Programm an Rechenleistung für Datenträger- und Netzwerkverwaltung, Indizierung und Darstellung der Oberfläche etc. braucht). Das komplette System ist also nur zu 25% ausgelastet.
Was heißt das jetzt für uns?
Dass wir unbedingt aufpassen müssen, welche Software wir einsetzen, bevor wir uns für ein bestimmtes Mehrkernsystem entscheiden.
Arbeitet man hauptsächlich mit Software, die nicht „Multi-Thread fähig“ ist (also nicht mehrere Kerne gleichzeitig ansprechen kann), bringt es in dem Fall mehr, mit einer 2-Kern-CPU zu arbeiten, die z.B. mit je 3,6 GHz. getaktet ist. Das gäbe zwar theoretisch nur 7,2 GHz. „Gesamtleistung“, da aber nur ein Kern benutzt wird, sind wir trotzdem 20% schneller als bei einer 4-Kern-CPU, bei der ein einzelner Kern nur mit 3,0 GHz. getaktet wird.
Oder anders rum: Wäre der Anwender von der Dual-Core-CPU zu einer Quad-Core-CPU umgestiegen, würde er sich sehr wundern, warum der teure neue Computer, der theoretisch fast doppelt so schnell sein müsste, langsamer läuft als vorher :-/
Intel und AMD haben das Problem aber erkannt und in ihre neuesten CPUs eine „Turbo-Boost“ Funktion eingebaut, die aktiviert wird, wenn nur ein Kern der CPU gefordert ist. Dann übertaktet der Prozessor automatisch den einen Kern, der unter Last steht. Das funktioniert aber nur, wenn die anderen Kerne nur „Grundrauschen“ abarbeiten und quasi nichts zu tun haben.
Gott sei Dank wird auch von den Programmierern immer mehr dafür getan, dass die entsprechende Software mehrkernfähig wird. Bis allerdings wirklich jedes Programm so weit ist, hilft nur Testen…
Nach dem 2ten Absatz konnte ich nicht mehr!! Hahahahaahaha! Aber perfekt auf den Punkt gebracht.
Nur eine Frage bleibt mir noch: Wenn ich mehrere Programme gleichzeitig nutze, teilt sich deren individuelle Ausnutzung auf mehreren Kernen auf, oder zehren beide an einem Kern?
Ich denke mal stark, dass Windows die einzelnen Programme doch auf die Kerne aufteilt?
Korrekt. Das Betriebssystem verteilt die Last von verschiedenen Programmen dann auf die Kerne.
Klasse, weiß ich jetzt doch, das ich auf dem richtigen Damper war.
Claus
Vielen Dank
sehr umfangreich erklärt.
super erklärt, danke!!
Ich muss sagen das du das sehr gut erklärt hast ich habe alles verstanden