Software für Multi-Core-CPUs optimieren

Programmieren für Multi-Core-Prozessoren

Duplizierung des CPU-Kerns in Multi-Core-CPUs

Beim nächsten Schritt der Parallelverarbeitung nun dupliziert man gar ganze Rechenkerne in Multi-Core-CPUs. Im Gegensatz zum Hyper-Threading werden nun also nicht mehr ausgewählte Teile einer CPU, sondern die gesamte CPU dupliziert. Multi-Core-CPUs weisen folglich auch mehrere Execution-Units auf.

Die Execution-Unit wiederum ist für die Ausführung der Instruktionen zuständig. Multithreaded Programme, die auf eine Multi-Core-CPU ausgeführt werden, laufen somit vollständig parallel. Jeder dieser Threads wird dann auf einem eigenen CPU-Core, mit eigener Execution-Unit und eigenen Registersatz ausgeführt. Kombiniert mit der Smart Cache Technologie von Intel können Caches dennoch sehr effizient genutzt werden ohne Datensätze unnötig in verschiedenen Cache-Bereichen abzulegen und updaten zu müssen. Auch erlaubt es eine dynamische Cachezuweisung pro CPU-Kern. Damit steht der optimalen Nutzung der Caches und somit der Kerne kaum noch etwas im Wege.

Früher und heute: Von der Abarbeitung im Single-Thread zur aktuellen Multi-Core-Technologie. (Quelle: Intel)
Früher und heute: Von der Abarbeitung im Single-Thread zur aktuellen Multi-Core-Technologie. (Quelle: Intel)

Das Prinzip der Multi-Core-CPUs ist einfach und ist in unserer modernen Welt allgegenwärtig. Die Erhöhung der Taktrate entspricht einer Beschleunigung des Fließbands der industriellen Produktion. Wenn man dabei aber, aus welchen Gründen auch immer, an Grenzen stößt, so platziert man kurzerhand die gesamte Fertigungstrasse ein zweites, drittes oder viertes Mal, just wie die Kassen im Supermarkt und den zahlungswilligen Käufern. So auch bei den Prozessoren, nur spricht man da von Multi-Core. Ihre „Kunden“ sind die anstehenden Programme, die durch die Prozessoren bedient oder besser abgearbeitet werden. Je mehr Prozessoren oder Kassen, umso höher der Gesamtdurchsatz. Soweit die Theorie. Im nächsten Teil dieser Reihe widmen wir uns unter anderem der Parallelverarbeitung in der Praxis. (mha)