Ein Angebot von

EMB² = Parallel + Heterogen

| Autor / Redakteur: Tobias Schüle* / Christine Kremser

Parallelen, die sich im Unendlichen schneiden: Parallele Programmierung ist eine Voraussetzung für den effizienten Einsatz von Multicore-Systemen.
Parallelen, die sich im Unendlichen schneiden: Parallele Programmierung ist eine Voraussetzung für den effizienten Einsatz von Multicore-Systemen. (Bild: gemeinfrei/Pixabay / CC0)

Die Embedded Multicore Building Blocks (EMB²) sind eine als Open-Source-Software zur Verfügung stehende Bibliothek für die parallele Programmierung von eingebetteten Systemen. EMB² basiert auf MTAPI (Multicore Task Management API), einem Standard für das Task-Management in mit C/C++ implementierten Applikationen. Im Folgenden geben wir einen Überblick über EMB² und zeigen auf, wie sich Parallelität über die Grenzen von klassischen Multicore-Prozessoren hinaus mittels MTAPI nutzen lässt.

Bei der Programmierung eingebetteter Systeme sind Entwickler heutzutage oftmals mit Parallelität und Heterogenität konfrontiert [1]. Parallelität ist auf Applikationsebene erforderlich, um die Leistung von Multicore-Prozessoren ausschöpfen zu können. Dies ist jedoch mit zahlreichen Hürden und Fallstricken bei der Software-Entwicklung verbunden. Erschwerend kommt hinzu, dass viele eingebettete Systeme neben mehreren, gleichartigen Prozessorkernen spezielle Beschleuniger wie Signalprozessoren oder gar programmierbare Logikbausteine (FPGAs) enthalten.

Tatsächlich bestehen moderne Systems-on-a-Chip (SoCs) aus verschiedensten Prozessoren, die für unterschiedliche Zwecke optimiert sind. Solche SoCs zeichnen sich durch eine hohe Leistung bei relativ geringem Energieverbrauch aus. Zu den Kehrseiten gehören eine hohe Komplexität der Software-Entwicklung sowie Herstellerabhängigkeit und damit mangelnde Portabilität. Der MTAPI-Standard [2] verspricht, diese Probleme zu lösen. Bevor wir jedoch auf die grundlegenden Konzepte von MTAPI eingehen, geben wir einen Überblick über EMB².

Embedded Multicore Building Blocks (EMB²)

Bild 1 in der Bildergalerie zeigt die wesentlichen Bibliotheksbausteine und deren Einordnung im Gesamtsystem. Auf unterster Ebene befindet sich die Basisbibliothek, die vom Betriebssystem und der Prozessorarchitektur abstrahiert. Darauf baut die MTAPI-Implementierung auf, die entweder direkt von der Applikation aus nutzbar ist oder indirekt über die Komponenten Algorithmus und Dataflow.

Letztere stellen häufig benutzte, parallele Algorithmen beziehungsweise Schablonen für die Verarbeitung von Datenströmen zur Verfügung. Eine Besonderheit der MTAPI-Implementierung ist die Unterstützung von Task-Prioritäten und -Affinitäten. Diese unterstützen die Umsetzung von Echtzeiteigenschaften und erlauben eine feingranulare Kontrolle über die Hardware. So können beispielsweise mittels Affinitäten Prozessorkerne für bestimmte Aufgaben reserviert werden.

Desweiteren stehen dem Entwickler threadsichere Datenstrukturen (Container) zur Verfügung, die speziell für den Einsatz in eingebetteten Systemen ausgelegt sind. Dazu gehört zum Einen, dass die Datenstrukturen während des Betriebs keinen dynamischen Speicher allokieren – für viele eingebettete Systeme, insbesondere in sicherheitskritischen Bereichen, ein Muss.

Zudem kommen sie ohne blockierende Synchronisationsmechanismen aus (lock-/wait-free), woraus sich Garantien bzgl. des Fortschritts der zugreifenden Threads ableiten lassen [3]. Dies ist gerade in eingebetteten Systemen ein nicht zu unterschätzender Vorteil gegenüber klassischen, blockierenden Verfahren.

Eine ausführlichere Beschreibung der Komponenten mit Code-Beispielen ist in [4] und [5, 6] zu finden (siehe dazu ).

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44289616 / Multicore)