Anbieter zum Thema

Insbesondere in Verbindung mit mehreren unabhängigen Speicherschnittstellen kann das unabhängige Ausführen von Funktionen gewährleistet werden, was insbesondere Echtzeitanforderungen und dem Konsolidieren von Funktionen zu gute kommt (Bild 2). Da die Kommunikationskosten zweier Rechenkerne allerdings mit deren Distanz zueinander ansteigt, müssen bei der Verwendung eines NEWS-Netzwerks auch diese in die Partitionierungsentscheidung eingebracht werden.
Kreuzschienenverteiler und Permutationsnetzwerke sind mächtiger als NEWS-Netzwerke, allerdings auch deutlich komplexer. Kreuzschienenverteiler können beliebige Verbindungen zwischen allen Teilnehmern schalten, benötigen jedoch sehr viel Fläche und sind daher sehr teuer.
Permutationsnetzwerke können alle Verbindungen zwischen Busteilnehmern, jedoch nicht alle Permutationen schalten. Dies erhöht den Aufwand für das effiziente Verteilen von Algorithmen beträchtlich.
Modellierung unterstützt bei Entscheidungen
Aufgrund der Menge an Anforderungen, Einschränkungen und Lösungsmöglichkeiten ist es bereits bei einer sehr kleinen Anzahl an Rechenkernen nicht mehr möglich, Verteilungsentscheidungen manuell zu treffen. Entwickler müssen mittels Algorithmen, Werkzeugen und Methoden unterstützt werden.
Ein Beispiel für ein solches Werkzeug, welches bereits in der Industrie eingesetzt wird, ist Simulink. Es ermöglicht es datenflussbasierte Systeme, zum Beispiel Regelungen oder Filter, modellbasiert zu entwickeln. Um ein Simulink-Modell auf einen Mehrkernprozessor auszuführen wurde am Fraunhofer IESE ein Verfahren entwickelt, welches Entwickler bei dieser Tätigkeit unterstützt. Zuerst werden die Fähigkeiten und Einschränkungen des Mehrkernprozessors oder Prozessornetzwerks modelliert.
Nachdem eine Datenflussanalyse durchgeführt wurde, berechnet ein ILP-Solver die optimale Partitionierung und Verteilung. Hierbei werden sowohl Rechenstränge parallelisiert, Funktionen konsolidiert, als auch Pipelining eingesetzt. Echtzeitanforderungen und Ausführzeiten des Codes auf heterogenen Kernen werden ebenfalls berücksichtigt. Die erzeugten Simulinkmodelle werden mittels des existierenden Generators für Simulink in Code umgewandelt.
Der notwendige Code welcher die Ausführung steuert sowie Kommunikation und Energiesparstrategien implementiert, wird von einem neu entwickelten Generator erzeugt. Auf diese Weise lassen sich existierende Algorithmen schnell und effizient parallelisieren.
Fazit und Ausblick: Mehrkernprozessoren bieten ein großes Potential im Hinblick auf eingebettete Echtzeitsysteme, und werden in den nächsten Jahren zunehmend Bedeutung erlangen. Im Rahmen dieses Artikels haben wir beschrieben, wie sich Echtzeitanforderungen mittels moderner Mehrkernprozessoren realisieren lassen, und unterschiedliche Parallelisierungsstrategien und Kommunikationsformen aufgezeigt. Mehrkernprozessoren erfordern neue Programmierwerkzeuge, um deren Fähigkeiten effektiv für Entwickler nutzbar zu machen. Erfolgversprechend sind hier insbesondere Ansätze, welche bewährte Modellierungssprachen nutzen und eine automatische oder semi-automatische Parallelisierung ermöglichen.
Artikelfiles und Artikellinks
(ID:352106)