EMB² 1.0 unterstützt parallele Programmierung heterogener Systeme

Die C/C++-Bibliothek unter der Federführung von Siemens umfasst eine Implementierung des MTAPI-Standards enthält, der die Task-Parallelisierung unter Embedded-Systemen ermöglichen soll.

In Pocket speichern vorlesen Druckansicht
Embedded Multicore Building Blocks 1.0

(Bild: Siemens)

Lesezeit: 2 Min.
Von
  • Alexander Neumann

Die Entwickler der Embedded Multicore Building Blocks haben die Version 1.0 der C/C++-Bibliothek zur Parallelisierung von Softwareanwendungen im Umfeld von Embedded-Systemen fertiggestellt. Vorgestellt worden war das Softwareprojekt im Herbst 2014 und seitdem hat sich offenbar relativ viel getan. Hinzugekommen ist zum Beispiel die Unterstützung für die parallele Programmierung heterogener Systeme, aber auch zahlreiche kleinere Verbesserungen standen auf der Roadmap.

EMB2, wie das Projekt kurz heißt, ist vor dem Hintergrund entstanden, dass Anforderungen in der Embedded-Entwicklung wie Echtzeit-Fähigkeit und Speicherverbrauch andere sein können als in anderen Branchen, wo zur Parallelisierung etwa Intels Threading Building Blocks (TBB) eingesetzt werden. Darüber hinaus bietet die Bibliothek zusätzliche Features wie Task-Priorisierungen, zusätzlich soll man damit die Scheduling-Strategie für nichtfunktionale Anforderungen wie minimale Latenz anpassen können.

Die Bibliothek umfasst außerdem eine Implementierung des MTAPI-Standards der Multicore Association, der die Task-Parallelisierung unter Embedded-Systemen angeht. Zusätzlich zur MTAPI-Implementierung, die sich um die Task-Scheduling und -Ausführung auf eingebetteten parallelen Systemen kümmert, bietet EMB2 Bausteine für rechenintensive Anwendungen, die Parallelität auf homogenen oder heterogenen Multicore-Plattformen erfordern. Diese Anwendungen sind bei Bilderkennung, Signalverarbeitung, Datenanalyse für IoT oder Künstlicher Intelligenz zu nutzen, aber auch bei Aufgaben der industriellen Automatisierung, Energieproduktion, Gesundheitsversorgung, Mobilität und Unterhaltungselektronik, wie es in einer Pressemitteilung der Multicore Association heißt.

Hier ist auch davon die Rede, dass EMB2 nun kompatibel mit MTAPI-Referenzimplementierung sei und C++-Wrapper für das Task-Management umfasse. Des Weiteren gibt es Plug-ins für OpenCL, CUDA und über Netzwerke verteilt arbeitende Systeme. Darüber hinaus werden nun mehr Hardwarearchitekturen unterstützt. Weitere Änderungen listet der Changelog auf.

Die Sourcen des EMB2-Projekts finden sich unter der BSD-Lizenz auf GitHub. (ane)