Sonntag, 19. Mai 2024

Archiv


Cache statt Kerne

Wenn man sich heute beim Elektronik-Discounter einen neuen PC kauft, dann hat dessen Prozessor oft vier Kerne. Vor wenigen Jahren noch hätte ein solcher PC als Hochleistungsrechner gegolten. Das Problem ist jedoch: ein Großteil der implementierten Rechenleistung liegt meist brach.

Von Achim Killer | 24.03.2012
    Professor Arndt Bode vom Lehrstuhl für Rechnertechnik der TU München hat auch praktisch sehr viel mit Multicore-Systemen zu tun. Er ist Leiter des Leibniz-Rechenzentrums, wo gerade der SuperMUC aufgebaut wird, ein Supercomputer mit weit über 100.000 Prozessorkernen. Wenn die heuer ihre Arbeit aufnehmen, dann werden sie sehr gut ausgelastet sein, etwa wenn es darum geht, mit Spezial-Software die Entstehung des Weltalls zu simulieren. Anders sieht bei Professor Bodes Schreibtisch-PC aus:

    "Also im Normalbetrieb werden von den vier Cores wahrscheinlich zwei genutzt sein."

    Vier Prozessorkerne haben handelsübliche PCs heutzutage. Einen nutzt das Betriebssystem. Und auf die anderen versucht es die Rechenaufgaben aus der Anwendungssoftware zu verteilen.

    "Das Betriebssystem an sich ist schon ok. Es hapert in der Regel daran, dass das Anwendungsprogramm für sich so geschrieben ist, dass es streng sequentiell ausgeführt wird."

    Und weil man meist nur mit einer Anwendung arbeitet, werden auch bloß zwei Prozessorkerne benutzt, einer vom Betriebssystem und einer von der Anwendung. Die kann zwar auch auf mehreren physischen oder logischen Kernen laufen – und somit sehr viel schneller. Allerdings muss sie dazu in Prozesse oder in Threads aufgeteilt sein, also in Code-Segmente, die gleichzeitig ausgeführt werden können. Das aber ist PC-Software häufig nicht, weil so was schwierig zu programmieren ist. Rechenaufgaben, die auf einander aufbauen, können halt nicht parallel abgearbeitet werden. Zwar gibt es auch Berechnungen, die leicht zu parallelisieren sind. Aber die werden häufig nicht vom Hauptprozessor erledigt.

    "Man kann sich sehr wohl vorstellen, dass wenn ein Grafikbild aus Millionen Punkten besteht, dass man eben die Millionen in Teile zu ein paar Tausend aufteilt und sie eben parallel bearbeitet. Das geht sehr wohl. Und das nutzen ja auch die Grafik-Akzeleratoren, die ja schon mit Parallelitätsgraden von einigen Hundert auf dem Chip arbeiten und da sehr erfolgreich sind."

    Auch typische Supercomputer-Aufgaben wie Crash-Tests und Klimaberechnungen lassen sich leicht parallelisieren. Und für Server-Software steht den Entwicklern eine breite Palette an Programmierwerkzeugen zur Verfügung, die die Aufgliederung der Software in Prozesse und Threads unterstützen. Das liegt daran, dass in Rechenzentren schon seit vielen Jahren Multiprozessor-Systeme stehen und die Software-Industrie sich darauf eingestellt hat. Für PC-Software hingegen fehlen entsprechende Programmierwerkzeuge. – Auf das Problem, dass es deshalb kaum Software für Multicore-Prozessoren gibt, hat vor vier Jahren erstmals die Gartner Group hingewiesen.

    "Jetzt werden symmetrische Multiprozessor-Systeme auf einem einzigen Chip ausgeliefert. Vor zehn Jahren war es ein Problem, einen Computer mit zwei oder vier Prozessoren zu betreiben. Das Problem verschwindet nicht dadurch, dass man die Prozessoren auf einen Chip packt und sie Kerne nennt."