zurück zum Artikel

EMB²: Parallele Task-Programmierung für Embedded-Systeme

Alexander Neumann

Die Embedded Multicore Building Blocks sind eine neue, von Siemens vorgestellte C/C++-Bibliothek, die die erste frei zugängliche Implementierung des MTAPI-Standards enthält, der die Task-Parallelisierung unter Embedded-Systemen zum Ziel hat.

C/C++-Bibliotheken zur Parallelisierung von Softwareanwendungen gibt es schon einige. Doch während bekannte Bibliotheken wie Intels Threading Building Blocks (TBB) primär für Server- und Desktop-Programme gedacht sind und offenbar nur geringen Einfluss auf die zugrunde liegende Hardware nehmen, sehen Entwickler bei Siemens noch Bedarf für vergleichbare Alternativen im Umfeld der Embedded-Systeme. Deshalb haben sie nun mit den Embedded Multicore Building Blocks (EMB² [1]) eine unter einer BSD-Lizenz stehende C/C++-Bibliothek veröffentlicht.

Sie ist vor dem Hintergrund entworfen, dass Anforderungen in der Embedded-Entwicklung wie Echtzeit-Fähigkeit und Speicherverbrauch andere sein können als in anderen Branchen. Darüber hinaus bietet EMB² 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 die womöglich erste frei zugängliche Implementierung des MTAPI-Standards der Multicore Association [2], der die Task-Parallelisierung unter Embedded-Systemen angeht.

EMB² besteht aus fünf Bausteinen, die die Programmierung eingebetteter Multicore-Systeme unterstützen: MTAPI Task Management, Algorithmen, Dataflow, Containers. Die Basisbibliothek abstrahiert von der konkreten Plattform (Betriebssystem, Prozessor).

EMB² besteht aus fünf Bausteinen, die die Programmierung eingebetteter Multicore-Systeme unterstützen: MTAPI Task Management, Algorithmen, Dataflow, Containers. Die Basisbibliothek abstrahiert von der konkreten Plattform (Betriebssystem, Prozessor).

EMB² kommt in Teilen schon in einigen Siemens-Projekten zum Einsatz und ist unabhängig von der zugrunde liegenden Plattform – heterogene Systeme zu bedienen, steht für die nahe Zukunft auf der Roadmap. Als maßgebliche Sprachversionen unterstützt die Bibliothek derzeit C99 und C++03. Neuere Standards verpflichtend vorauszusetzen, mache laut Tobias Schüle, Mitentwickler der Bibliothek bei Siemens Corporate Technology, derzeit noch keinen Sinn, da diese noch zu wenig verbreitet seien. Von der Open-Source-Legung erhoffen sich die Entwickler weitere Programmierer zu finden, die an der Weiterentwicklung von EMB² mitwirken. (ane [3])


URL dieses Artikels:
https://www.heise.de/-2434998

Links in diesem Artikel:
[1] https://github.com/siemens/embb
[2] http://www.multicore-association.org/workgroup/mtapi.php
[3] mailto:ane@heise.de