{"id":8129,"date":"2025-11-29T09:44:05","date_gmt":"2025-11-29T08:44:05","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8129"},"modified":"2026-02-11T05:11:04","modified_gmt":"2026-02-11T04:11:04","slug":"emb%c2%b2-parallel-heterogen","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/emb%c2%b2-parallel-heterogen\/","title":{"rendered":"EMB\u00b2 = Parallel + Heterogen"},"content":{"rendered":"<h2>Parallele Programmierung von Systems-on-a-Chip<\/h2>\n<p style=\"text-align: left;\" align=\"center\">Autor: Tobias Sch\u00fcle, Siemens AG<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2015<\/h3>\n<p><strong>Die Embedded Multicore Building Blocks (EMB\u00b2) sind eine als Open-Source-Software zur Verf\u00fcgung stehende Bibliothek f\u00fcr die parallele Programmierung von eingebetteten Systemen. EMB\u00b2 basiert auf MTAPI (Multicore Task Management API), einem Standard f\u00fcr das Task-Management in mit C\/C++ implementierten Applikationen. Im Folgenden geben wir einen \u00dcberblick \u00fcber EMB\u00b2 und zeigen auf, wie sich Parallelit\u00e4t \u00fcber die Grenzen von klassischen Multicore-Prozessoren hinaus mittels MTAPI nutzen l\u00e4sst.<br \/>\n<\/strong><\/p>\n<p>Bei der Programmierung eingebetteter Systeme sind Entwickler heutzutage oftmals mit Parallelit\u00e4t und Heterogenit\u00e4t konfrontiert [1]. Parallelit\u00e4t ist auf Applikationsebene erforderlich, um die Leistung von Multicore-Prozessoren aussch\u00f6pfen zu k\u00f6nnen. Dies ist jedoch mit zahlreichen H\u00fcrden 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\u00e4chlich bestehen moderne Systems-on-a-Chip (SoCs) aus verschiedensten Prozessoren, die f\u00fcr unterschiedliche Zwecke optimiert sind. Solche SoCs zeichnen sich durch eine hohe Leistung bei relativ geringem Energieverbrauch aus. Zu den Kehrseiten geh\u00f6ren eine hohe Komplexit\u00e4t der Software-Entwicklung sowie Herstellerabh\u00e4ngigkeit und damit mangelnde Portabilit\u00e4t. Der MTAPI-Standard [2] verspricht, diese Probleme zu l\u00f6sen. Bevor wir jedoch auf die grundlegenden Konzepte von MTAPI eingehen, geben wir einen \u00dcberblick \u00fcber EMB\u00b2.<\/p>\n<h2>Embedded Multicore Building Blocks (EMB\u00b2)<\/h2>\n<p>Abbildung 1 (siehe\u00a0<a title=\"EMB\u00b2 = Parallel + Heterogen (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_emb_____parallel__heterogen_siemens_schuele.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) 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 \u00fcber die Komponenten\u00a0<em>Algorithms<\/em>\u00a0und\u00a0<em>Dataflow<\/em>. Letztere stellen h\u00e4ufig benutzte, parallele Algorithmen beziehungsweise Schablonen f\u00fcr die Verarbeitung von Datenstr\u00f6men zur Verf\u00fcgung. Eine Besonderheit der MTAPI-Implementierung ist die Unterst\u00fctzung von Task-Priorit\u00e4ten und -Affinit\u00e4ten. Diese unterst\u00fctzen die Umsetzung von Echtzeiteigenschaften und erlauben eine feingranulare Kontrolle \u00fcber die Hardware. So k\u00f6nnen beispielsweise mittels Affinit\u00e4ten Prozessorkerne f\u00fcr bestimmte Aufgaben reserviert werden.<\/p>\n<p>Desweiteren stehen dem Entwickler threadsichere Datenstrukturen (Container) zur Verf\u00fcgung, die speziell f\u00fcr den Einsatz in eingebetteten Systemen ausgelegt sind. Dazu geh\u00f6rt zum einen, dass die Datenstrukturen w\u00e4hrend des Betriebs keinen dynamischen Speicher allokieren \u2013 f\u00fcr viele eingebettete Systeme, insbesondere in sicherheitskritischen Bereichen, ein Muss. Zudem kommen sie ohne blockierende Synchronisationsmechanismen aus (<em>lock-\/wait-free<\/em>), woraus sich Garantien bzgl. des Fortschritts der zugreifenden Threads ableiten lassen [3]. Dies ist gerade in eingebetteten Systemen ein nicht zu untersch\u00e4tzender Vorteil gegen\u00fcber klassischen, blockierenden Verfahren.<\/p>\n<p>Eine ausf\u00fchrlichere Beschreibung der Komponenten mit Code-Beispielen ist in [4] und [5, 6] zu finden (siehe dazu\u00a0<a href=\"https:\/\/github.com\/siemens\/embb\/\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/siemens\/embb\/<\/a>).<\/p>\n<h2>Multicore Task Management API (MTAPI)<\/h2>\n<p>Um die Leistung von Multicore-Prozessoren ausnutzen zu k\u00f6nnen, muss die zu verrichtende Arbeit in kleine Teile (<em>Tasks<\/em>) zerlegt werden. Da Threads f\u00fcr diesen Zweck in der Regel zu schwergewichtig sind, wurden in den letzten ein bis zwei Jahrzehnten effiziente Scheduling-Verfahren entwickelt, die ausf\u00fchrbereite Tasks auf die vorhandenen Kerne abbilden. Mit MTAPI stehen seit einigen Jahren auch standardisierte Schnittstellen f\u00fcr die Erzeugung, Verwaltung und Synchronisation von Tasks zur Verf\u00fcgung. Wesentliche Ziele bei der Definition von MTAPI waren die Benutzbarkeit in kleinen, ressourcenbegrenzten Systemen \u00fcber eine leichtgewichtige API sowie die Unterst\u00fctzung von heterogenen Systemen mit verteiltem Speicher und unterschiedlichen Befehlssatzarchitekturen. Zudem setzt MTAPI nicht notwendigerweise ein Betriebssystem voraus, sondern kann auch direkt auf der Hardware (<em>bare metal<\/em>) betrieben werden.<\/p>\n<p>Abbildung 2 (siehe\u00a0<a title=\"EMB\u00b2 = Parallel + Heterogen (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_emb_____parallel__heterogen_siemens_schuele.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) illustriert die Programmierung von heterogenen Systemen mit MTAPI. Das Beispielsystem besteht aus einer Multicore-CPU mit vier Kernen, wobei ein Kern eine besondere Rolle mit eigenem Betriebssystem einnimmt, einem Graphikprozessor (GPU) und einem Signalprozessor (DSP). Diese Komponenten werden jeweils durch einen MTAPI-Knoten (<em>Node<\/em>) repr\u00e4sentiert und bilden zusammen eine Dom\u00e4ne (<em>Domain<\/em>). Als Benutzer kann man entweder explizit angeben, auf welchem Knoten ein Task ausgef\u00fchrt werden soll, oder die Entscheidung dar\u00fcber dem Scheduler \u00fcberlassen. EMB\u00b2 verwendet standardm\u00e4\u00dfig f\u00fcr das Scheduling innerhalb eines Knotens priorit\u00e4tsbasiertes\u00a0<em>Work Stealing<\/em>, w\u00e4hrend\u00a0 innerhalb einer Dom\u00e4ne Tasks in Abh\u00e4ngigkeit der Knotenauslastung verteilt werden. MTAPI selbst gibt jedoch keine Scheduling-Verfahren vor, und so ist es auch in EMB\u00b2 m\u00f6glich, eigene Scheduling-Algorithmen einzusetzen.<\/p>\n<p>Neben Tasks kennt MTAPI zwei weitere damit verwandte Konzepte:\u00a0<em>Jobs<\/em>\u00a0und\u00a0<em>Actions<\/em>. Ein Task ist gem\u00e4\u00df MTAPI-Spezifikation die Ausf\u00fchrung eines Jobs mit bestimmten Daten. Ein Job wiederum repr\u00e4sentiert die auszuf\u00fchrende Funktion auf einer abstrakten Ebene. Jeder Job wird durch mindestens eine Action implementiert. Auf diese Weise k\u00f6nnen in heterogenen Systemen Implementierungen f\u00fcr verschiedene Prozessoren hinterlegt werden. Eine Action kann sogar komplett in Hardware implementiert sein. Abbildung 3 verdeutlicht den Zusammenhang zwischen Tasks, Jobs und Actions. Da Actions sehr unterschiedlicher Natur sein k\u00f6nnen, stellt EMB\u00b2 eine Plugin-Schnittstelle zur Verf\u00fcgung, \u00fcber die benutzerdefinierte Actions in MTAPI integriert werden k\u00f6nnen. So kann zum Beispiel eine FPGA-basierte Action mittels Plugin einem Job zugeordnet und transparent zu anderen Actions ausgef\u00fchrt werden. Neben der Unterst\u00fctzung heterogener Systeme hat die Trennung von Jobs und Actions den Vorteil, dass sich damit Applikationen f\u00fcr eine aus unterschiedlichen Hardware-Konfigurationen bestehende Produktfamilie auf einheitliche Weise entwickeln lassen.<\/p>\n<p>EMB\u00b2 stellt vordefinierte Plugins f\u00fcr h\u00e4ufig benutzte Technologien zur Verf\u00fcgung. Das folgende Beispiel zeigt die Erzeugung einer Action f\u00fcr OpenCL-Code. Zun\u00e4chst wird die entsprechende Header-Datei eigebunden, der OpenCL-Kernel definiert und anschlie\u00dfend das Plugin initialisiert:<\/p>\n<p class=\"quellcode\"><strong>#include\u00a0<\/strong>&lt;embb\/mtapi\/c\/mtapi_opencl.h&gt;<\/p>\n<p class=\"quellcode\"><strong>const char\u00a0<\/strong>* kernel = &#8222;__kernel void MyKernel(\u2026) {\u2026} &#8222;;<\/p>\n<p class=\"quellcode\">mtapi_status_t status;<\/p>\n<p class=\"quellcode\">mtapi_opencl_plugin_initialize(&amp;status);<\/p>\n<p>Nun kann die Action registriert und OPENCL_JOB zugeordnet werden:<\/p>\n<p class=\"quellcode\"><strong>float<\/strong>\u00a0node_local = 1.0f;<\/p>\n<p class=\"quellcode\">action = mtapi_opencl_action_create(<\/p>\n<p class=\"quellcode\">\u00a0 OPENCL_JOB,<\/p>\n<p class=\"quellcode\">\u00a0 kernel, &#8222;MyKernel&#8220;, local_work_size, element_size,<\/p>\n<p class=\"quellcode\">\u00a0 &amp;node_local,\u00a0<strong>sizeof<\/strong>(<strong>float<\/strong>),<\/p>\n<p class=\"quellcode\">\u00a0 &amp;status);<\/p>\n<p>Dabei sind<span class=\"quellcode\">\u00a0local_work_size<\/span>\u00a0und\u00a0<span class=\"quellcode\">element_size<\/span>\u00a0OpenCL-spezifische Argumente, und node_local verweist auf gemeinsam genutzte Daten innerhalb des Knotens [5, 6]. Bevor der Job durch einen Task ausgef\u00fchrt wird, k\u00f6nnen ihm optional weitere Actions zugeordnet werden [2].<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Die parallele Programmierung gewinnt auch bei der Entwicklung eingebetteter Systeme zunehmend an Bedeutung, da von Singlecore-Prozessore keine wesentliche Geschwindigkeitssteigerung mehr zu erwarten ist. Herk\u00f6mmliche threadbasierte Ans\u00e4tze sind jedoch oft fehleranf\u00e4llig, ineffizient und umst\u00e4ndlich zu benutzen. Eine weitere Herausforderung bilden heterogene Systems-on-a-Chip, die verschiedenartige Prozessoren auf einem Chip vereinigen. Standardisierte Schnittstellen wie MTAPI helfen, von dieser Diversit\u00e4t zu abstrahieren und Parallelit\u00e4t auf Systemebene effizient zu nutzen.<\/p>\n<h2>Literaturverzeichnis<\/h2>\n<p>[1] H. Alkhatib, P. Faraboschi, E. Frachtenberg, H. Kasahara, D. Lange, P. Laplante, A. Merchant, D. Milojicic, K. Schwan. &#8222;IEEE CS 2022 Report&#8220;. IEEE Computer Society, 2014.<\/p>\n<p>[2] &#8222;Multicore Task Management API (MTAPI) Specification V1.0&#8220;. The Multicore Association, 2013.<\/p>\n<p>[3] M. Herlihy, N. Shavit. &#8222;On the Nature of Progress&#8220;. International Conference on Principles of Distributed Systems (OPODIS), Springer, 2011.<\/p>\n<p>[4] T. Sch\u00fcle. &#8222;Embedded Multicore Building Blocks \u2013 Parallel Programming Made Easy&#8220;. Embedded World, 2015.<\/p>\n<p>[5] Embedded Multicore Building Blocks \u2013 Tutorial, 2015.<\/p>\n<p>[6] Embedded Multicore Building Blocks \u2013 Reference Manual, 2015.<\/p>\n<p><a title=\"EMB\u00b2 = Parallel + Heterogen (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_emb_____parallel__heterogen_siemens_schuele.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Multicore &#8211; unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"Trainings und Termine - Mikrocontroller\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Multicore \/Mikrocontroller.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Multicore &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Modellierung \/Embedded- und Echtzeit-Softwareentwicklung steht\u00a0<a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Parallele Programmierung von Systems-on-a-Chip Autor: Tobias Sch\u00fcle, Siemens AG Beitrag &#8211; Embedded Software Engineering Kongress 2015 Die Embedded Multicore Building Blocks (EMB\u00b2) sind eine als Open-Source-Software zur Verf\u00fcgung stehende Bibliothek f\u00fcr die parallele Programmierung von eingebetteten Systemen. EMB\u00b2 basiert auf MTAPI (Multicore Task Management API), einem Standard f\u00fcr das Task-Management in mit C\/C++ implementierten Applikationen. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8129","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>EMB\u00b2 = Parallel + Heterogen - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/emb\u00b2-parallel-heterogen\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EMB\u00b2 = Parallel + Heterogen - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Parallele Programmierung von Systems-on-a-Chip Autor: Tobias Sch\u00fcle, Siemens AG Beitrag &#8211; Embedded Software Engineering Kongress 2015 Die Embedded Multicore Building Blocks (EMB\u00b2) sind eine als Open-Source-Software zur Verf\u00fcgung stehende Bibliothek f\u00fcr die parallele Programmierung von eingebetteten Systemen. EMB\u00b2 basiert auf MTAPI (Multicore Task Management API), einem Standard f\u00fcr das Task-Management in mit C\/C++ implementierten Applikationen. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/emb\u00b2-parallel-heterogen\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T08:44:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T04:11:04+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"EMB\u00b2 = Parallel + Heterogen\",\"datePublished\":\"2025-11-29T08:44:05+00:00\",\"dateModified\":\"2026-02-11T04:11:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/\"},\"wordCount\":1227,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/\",\"name\":\"EMB\u00b2 = Parallel + Heterogen - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T08:44:05+00:00\",\"dateModified\":\"2026-02-11T04:11:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/emb%c2%b2-parallel-heterogen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EMB\u00b2 = Parallel + Heterogen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EMB\u00b2 = Parallel + Heterogeneous - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/emb\u00b2-parallel-heterogen\/","og_locale":"en_GB","og_type":"article","og_title":"EMB\u00b2 = Parallel + Heterogen - MicroConsult Academy GmbH","og_description":"Parallele Programmierung von Systems-on-a-Chip Autor: Tobias Sch\u00fcle, Siemens AG Beitrag &#8211; Embedded Software Engineering Kongress 2015 Die Embedded Multicore Building Blocks (EMB\u00b2) sind eine als Open-Source-Software zur Verf\u00fcgung stehende Bibliothek f\u00fcr die parallele Programmierung von eingebetteten Systemen. EMB\u00b2 basiert auf MTAPI (Multicore Task Management API), einem Standard f\u00fcr das Task-Management in mit C\/C++ implementierten Applikationen. [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/emb\u00b2-parallel-heterogen\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T08:44:05+00:00","article_modified_time":"2026-02-11T04:11:04+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"EMB\u00b2 = Parallel + Heterogen","datePublished":"2025-11-29T08:44:05+00:00","dateModified":"2026-02-11T04:11:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/"},"wordCount":1227,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/","url":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/","name":"EMB\u00b2 = Parallel + Heterogeneous - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T08:44:05+00:00","dateModified":"2026-02-11T04:11:04+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/emb%c2%b2-parallel-heterogen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"EMB\u00b2 = Parallel + Heterogen"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8129"}],"version-history":[{"count":8,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8129\/revisions"}],"predecessor-version":[{"id":11605,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8129\/revisions\/11605"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}