Multicore-Programmierung SHIM: Beschreibungssprache für Mehrkernprozessoren

Redakteur: Franz Graser

Der XML-basierte Standard SHIM zielt auf eine einheitliche Beschreibung von Prozessoreigenschaften. Dadurch soll es für Tool-Hersteller leichter werden, ihre Werkzeuge auf die Multicore-Chips abzustimmen.

Anbieter zum Thema

Softwarewerkzeuge für Mehrkern-Prozessoren (hier ein Multicore-Wafer von Intel) sind sehr schwer auf die jeweilige Hardware zu optimieren. Der Beschreibungsstandard SHIM soll hier helfen.
Softwarewerkzeuge für Mehrkern-Prozessoren (hier ein Multicore-Wafer von Intel) sind sehr schwer auf die jeweilige Hardware zu optimieren. Der Beschreibungsstandard SHIM soll hier helfen.
(Bild: Intel)

Das englische Wort „Shim“ bedeutet auf Deutsch soviel wie „Abstandsscheibe“ oder „Abstandsstück“. Der SHIM-Standard (Software-Hardware Interface for Multi-Many-Core) hat im übertragenen Sinn eine ganz ähnliche Bedeutung: Er soll die die Lücke zwischen der Multicore-Hardware und den dafür notwendigen Entwickler-Tools verringern.

Aber damit ist das Prinzip nur sehr allgemein erklärt. So ganz einfach fällt es auch Markus Levy, dem Vorsitzenden des Industriekonsortiums The Multicore Association, nicht, das Projekt zu umreißen. „SHIM ist so etwas wie eine Programmierschnittstelle (API), aber es ist eigentlich auch keine Laufzeit-API. Es geht im Kern darum, eines der großen Probleme bei der Entwicklung von Softwarewerkzeugen zu lösen.

Egal ob es sich um Parallelisierungswerkzeuge oder Modellierungs-Tools, Compiler oder Betriebssysteme handelt – es ist sehr aufwendig und teuer, diese Dinge an einen neuen Prozessor anzupassen, ganz besonders wenn es sich um einen Mehrkern- oder Vielkernprozessor mit Hunderten von Cores handelt. Und oft kommt schon ein Jahr später die nächste Generation heraus, wie soll man hier Support liefern? Hier kommt SHIM ins Spiel. Es ist ein XML-Schema, das die Hardware für den Tool-Hersteller beschreibt.“

SHIM soll Compiler und Betriebssysteme füttern

Laut Levy gibt es viele Bereiche, in denen SHIM eingesetzt werden kann. Einer davon ist die Hardware-Modellierung. Mit dem Hardwaremodell eines Mehr- oder Vielkernsystems könne man zum Beispiel einen parallelisierenden Compiler füttern, der die Arbeitspakete den einzelnen Prozessorkerne zuordnet. Ähnliches wäre für Betriebssysteme denkbar. Aber auch zur Performance-Analyse der Chips könne SHIM dienen.

Das XML-Schema von SHIM soll zweierlei Arten von Daten aufnehmen. Der erste Typ sind die Topologie-Daten des Prozessors, also die Informationen darüber, welche Hardware-Elemente sich auf dem Chip befinden. Diese Informationen beschreiben also, wie zum Beispiel die Kerne und die Speicher-Arrays auf der Chipfläche verteilt sind. Die einzelnen Komponenten des Chips werden in Component Sets zusammengefasst. Prozessorkerne gelten in diesem Sets als Master-Komponenten, während dem Speicher der Status einer Slave-Komponente zukommt. Ähnlich einer russischen Matrjoschka-Puppe kann ein solches Komponenten-Set weitere untergeordnete Komponenten-Sets enthalten. In einem 256-Kern-System könnte etwa ohne Weiteres ein Komponenten-Set aus 16 Komponenten-Sets bestehen, die wiederum 16 Kerne enthalten.

Angesichts der Komplexität moderner Prozessoren würde die manuelle Eingabe der Daten allerdings schnell zu einem Geduldsspiel. Deshalb wird parallel zur Definition des SHIM-Standards ein Werkzeug entwickelt, das diese Datenerfassung vereinfachen soll. Ein Wizard wird es demnach erlauben, Daten wie die Anzahl der Prozessorkerne und der Komponenten-Sets sowie die Größe des On-Chip-Speichers einzugeben. Daraus entsteht dann gewissermaßen das Gerüst der XML-Datei.

Ergänzendes zum Thema
Interview mit Markus Levy
Interview: „SHIM füllt die Lücke zwischen der Hardware und den Software-Tools.“

Experte für Multicore-Fragen: Markus Levy, Präsident der Multicore Association und des Embedded Processor benchmark Consortiums (EEMBC).
Experte für Multicore-Fragen: Markus Levy, Präsident der Multicore Association und des Embedded Processor benchmark Consortiums (EEMBC).
( Bild: The Multicore Association )

Was ist SHIM eigentlich?

Auf Englisch bedeutet SHIM „Abstandsscheibe“ oder „Lückenfüller“. Damit wird ziemlich genau wiedergegeben, worum es geht. SHIM füllt die Lücke zwischen der Hardware und den Softwarewerkzeugen. Es geht darum, dass es für Hersteller von Software-Tools – seien es jetzt Parallelisierungs- oder Modellierungswerkzeuge, Compiler oder Betriebssysteme – sehr teuer ist, einen neuen Prozessortyp zu adaptieren, ganz besonders, wenn es sich um einen Mehrkern- oder Vielkern-Chip handelt. Und dann kommt ein Jahr drauf die nächste Generation heraus – wie soll man damit zurechtkommen? Und hier kommt SHIM ins Spiel. Es stellt ein XML-Schema zur Verfügung, das die Hardware für den Tool-Hersteller beschreibt.

Wie könnte SHIM konkret von Nutzen sein?

Eine Firma, mit der ich vor kurzem gesprochen habe, stellt ein Tool her, das Multicore-Programme analysiert, zum Beispiel den Datenfluss. Um die Verteilung des Workloads zu optimieren, müssen sie quasi die gesamte Prozessorarchitektur in ihrem Tool abbilden. Ich habe sie gefragt: „Wie lange braucht ihr dafür?“ Die Antwort lautete: „Etwa ein Jahr für einen Prozessor.“ Diese Firma wäre zum Beispiel ein idealer Kandidat, um SHIM zu nutzen, wenn die Hardwarehersteller ihnen die nötige SHIM-XML-Datei zur Verfügung stellen würden.

Die Prozessorhersteller sollen also SHIM mit Informationen füllen. Glauben Sie, dass die Hardwarehersteller sich darauf einlassen, dass die Informationen über einen Prozessor mit SHIM jedem zur Verfügung stehen?

Ein großer Teil der Informationen, der in SHIM-XML einfließen wird, dürfte proprietärer Art sein, denn darin sind viele sehr spezifische Informationen über den Prozessor enthalten. Wahrscheinlich wird es so etwas wie eine Vertraulichkeitsvereinbarung zwischen den Prozessor- und den Tool-Herstellern geben. Der Anwender, der letztlich das Entwickler-Tool benutzt, das mit Hilfe von SHIM erstellt wurde, muss darüber auch gar nicht Bescheid wissen, denn er benutzt ja das Softwarewerkzeug, um den Prozessor anzusprechen. Die Hardware-spezifische SHIM-XML-Datei müsste man also gar nicht unbedingt offenlegen.

Dann müsste die Industrie die Initiative ja mit offenen Armen unterstützen.

Jein. Es ist ein bisschen eine Zwickmühle. Wenn man die Prozessorhersteller fragt, heißt es: „Wir sind so beschäftigt. Wir unterstützen diese Sache erst, wenn wir konkret gefragt werden.“ Wir müssen also erst deren potenzielle Kunden aufklären. Bis zu dem Punkt, an dem sie auf die Hardwareleute zugehen und sie fragen: „Warum macht ihr nicht bei SHIM mit? Sonst könnten wir dieses Tool sehr viel schneller mit eurem Prozessor verwenden.“

Die zweite Daten-Art, die in SHIM einfließt, sind Informationen zur Performance des Systems. Diese Informationen können von Hand eingegeben werden, aber auch dies werde ein sehr umständlicher Prozess sein, warnt Masaki Gondo, der Chief Technology Officer des japanischen Echtzeitbetriebssystem-Herstellers eSOL und Leiter der SHIM-Arbeitsgruppe der Multicore Association. „Wir werden ein Werkzeug entwickeln, das die topologischen Informationen in SHIM XML verstehen kann. Anhand dieser Informationen kann das Tool eine Benchmark-Software erzeugen, die entweder auf der physikalischen Hardware oder aber auf dem Prozessormodell ausgeführt werden kann.“

Die so gewonnenen Benchmark-Daten fließen dann in die XML-Datei ein. Es ist geplant, die Werkzeuge als Open-Source-Software zu veröffentlichen. Auf diese Weise sollen sie von Beginn an einer möglichst großen Zahl von Anwendern zugänglich sein.

(ID:42464653)