{"id":8076,"date":"2025-11-29T09:42:31","date_gmt":"2025-11-29T08:42:31","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8076"},"modified":"2026-02-11T05:08:36","modified_gmt":"2026-02-11T04:08:36","slug":"efficient-embedded-multicore-programming","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/effiziente-embeddded-multicore-programmierung\/","title":{"rendered":"Efficient embedded multicore programming"},"content":{"rendered":"<h2>Automatische Parallelisierung von Scilab\/MATLAB-Anwendungen<\/h2>\n<p style=\"text-align: left;\" align=\"center\">Autoren: Oliver Oey, Timo Stripf, emmtrix Technologies<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2015<\/h3>\n<p><strong>Durch immer weiter steigende Performanzanforderungen wird in immer mehr Bereichen anstelle von Einkernprozessoren auf Mehrkernprozessoren gesetzt. Dieser Wechsel ist im Bereich von Desktop-PCs oder Smartphones bereits vollzogen, im Bereich der eingebetteten Systeme ist der Umbruch jedoch noch im Gange. Durch die parallele Ausf\u00fchrung von Programmen kann sowohl die Performanz gesteigert als auch die Leistungsaufnahme reduziert werden. Bis heute verursacht die parallele Programmierung jedoch einen hohen Zeit- und Kostenaufwand und erfordert spezielles Wissen \u00fcber die Zielsysteme. Innerhalb des ALMA-EU-Projekts hat ein Konsortium aus Forschung und Industrie eine Werkzeugkette entwickelt, die die parallele Programmierung erheblich vereinfacht. Mittels automatischer Parallelisierung wird sequentieller Scilab\/MATLAB-Code f\u00fcr eingebettete Multicore-Prozessoren parallelisiert. Dadurch kann nicht nur die aufw\u00e4ndige manuelle Parallelisierung eingespart, sondern auch der Code auf verschiedenen Prozessoren wiederverwendet werden.<\/strong><\/p>\n<h2>Motivation<\/h2>\n<p>Laut Studien [1] ist die Programmierung von eingebetteten Mehrkernsystemen 4,5-mal so teuer, dauert 25% l\u00e4nger und ben\u00f6tigt 3-mal so viele Software-Ingenieure wie die Programmierung von Einkernsystemen. Das Ziel des EU-Projekts ALMA war es, diese Anforderungen an den Entwickler zu reduzieren. Dazu wurde die Entwicklung in zwei Bereiche aufgeteilt: die reine Programmierung des Algorithmus und die Anpassung an die gegebene Hardware. Um diese Anforderungen an die Entwickler zu reduzieren, wurden im EU-Projekt ALMA eine automatische Parallelisierung und Codeerzeugung aus arraybasierten Programmiersprachen untersucht. Zu diesen geh\u00f6ren MATLAB und \u00e4hnliche Sprachen wie Scilab, die sehr nah an der rein mathematischen Beschreibung sind und als Standarddatentyp auf Matrizen arbeiten. Aus diesem Grund eignen sie sich auch gut f\u00fcr Anwender, die keinen gro\u00dfen Programmierhintergrund haben. Der Programmierer kann sich auf die Entwicklung des Algorithmus konzentrieren, w\u00e4hrend die Anpassungen an die Zielhardware automatisch durch die Werkzeugkette erledigt werden.<\/p>\n<h2>ALMA &#8211; Projekt\u00fcbersicht<\/h2>\n<p>Die ALMA-Werkzeugkette, wie sie in [2] vorgestellt wurde, ist in mehrere Teilkomponenten unterteilt, die in Abbildung 1 (siehe\u00a0<a title=\"Effiziente Embedded-Multicore-Programmierung (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_effiziente_embedded-multicore-programmierung_emmtrix_technologies_oey__stripf.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) dargestellt werden. Als Eingangsdateien kommen die Anwendungen, die in Scilab\/MATLAB geschrieben wurden, sowie eine abstrakte Architekturbeschreibung zum Einsatz. Das Matrix FrontEnd wandelt den Eingangscode zun\u00e4chst in einen sequentiellen C-Code um, der als Basis f\u00fcr die Parallelisierung verwendet wird. Die Parallelisierungswerkzeuge erzeugen optimierten Code f\u00fcr die Zielarchitekturen, indem der Code parallelisiert und an die Eigenheiten der Zielplattformen angepasst wird, wie sie in der Architekturbeschreibung hinterlegt sind. In weiteren Optimierungsschritten k\u00f6nnen Laufzeitinformationen, die mit dem Multicore-Simulator ermittelt werden, f\u00fcr eine bessere Auslastung der Hardware verwendet werden.<\/p>\n<h2>Evaluation<\/h2>\n<p>Zur Evaluation des Ansatzes kamen zwei Zielarchitekturen sowie zwei Testanwendungen zum Einsatz. Die Architekturen waren aufgeteilt in den wissenschaftlichen Prozessor Kahrisma [3] sowie das X2014 System der Firma Recore Systems. Beide Plattformen setzen auf verteilten Speicher sowie mehrere unabh\u00e4ngig arbeitende Kerne. Die Zielanwendungen kamen zum einen aus der Bildverarbeitung vom Fraunhofer IOSB, bei der eine Objekterkennung mit Hilfe des SIFT-Algorithmus durchgef\u00fchrt wurde, und zum anderen aus der Telekommunikation von Intracom Telecom, in dem Teile des WiMax-Standards in Software ausgef\u00fchrt werden.<\/p>\n<h2>ALMA Werkzeugkette &amp; Workflow<\/h2>\n<p>Scilab\/MATLAB sind Skriptsprachen, das bedeutet, dass die Befehle nacheinander von einer Laufzeitumgebung interpretiert und ausgef\u00fchrt werden. Dies erm\u00f6glicht es, dass Eigenschaften wie beispielsweise die Gr\u00f6\u00dfe oder der Typ von Variablen, erst zur Laufzeit festgelegt werden. Eine Umsetzung dieses Verhaltens in C ist zwar m\u00f6glich, aber aufgrund der Performanz und des Speicherverbrauchs nicht sinnvoll. Aus dem allgemeinen MATLAB-Code wird als erstes C-Code erzeugt, der sich gut f\u00fcr die statische Analyse und die sp\u00e4tere Parallelisierung eignet. Dazu werden alle dynamischen Entscheidungen aufgel\u00f6st, so dass der statische Programmablauf besser analysiert werden kann. Im Falle von Variablen wird zun\u00e4chst \u00fcber die gesamte Laufzeit des Programms betrachtet, welcher Datentyp n\u00f6tig ist, um alle Zahlen ohne Einschr\u00e4nkungen darstellen zu k\u00f6nnen. Im C-Code wird dieser Datentyp verwendet, um sowohl die dynamischen Entscheidungen zu reduzieren als auch den Speicherverbrauch zu minimieren. Ein weiterer Vorteil von MATLAB hinsichtlich der Parallelisierung ist das Fehlen von Pointern. Dies erm\u00f6glicht es, den Datenfluss in einem Programm eindeutig bestimmen zu k\u00f6nnen, was wichtig f\u00fcr den Datentransfer zwischen den verschiedenen Kernen ist.<\/p>\n<p>Die abstrakte Hardwarebeschreibung setzt auf eine im Projekt entwickelte Architektur-Beschreibungssprache (engl. architecture desciption language, ADL) [4]. Als Besonderheit wird eine Beschreibung auf verschiedenen Abstraktionsebenen unterst\u00fctzt. So k\u00f6nnen Hardware-Module sowohl rein funktional als auch detailliert mit Angabe von Zyklen-akkuraten Instruktionen dargestellt werden. Auf diese Weise k\u00f6nnen sowohl Informationen, die zur Simulation der Hardware notwendig sind, als auch abstraktere Informationen, die f\u00fcr die Parallelisierungsentscheidung ben\u00f6tigt werden, dargestellt werden.<\/p>\n<p>Um eine gute Performanz einer parallelisierten Anwendung zu erreichen, muss die Parallelisierung auf zwei unterschiedlichen Ebenen ansetzen: auf einer feinen und einer groben. Dabei zielt die feine auf eine Optimierung der Ausf\u00fchrung auf einem Kern ab, und die grobe optimiert die gleichzeitige Ausf\u00fchrung auf mehreren Kernen. Durch diese Kombination kann die gegebene Hardware m\u00f6glichst effizient ausgenutzt werden.<\/p>\n<p>Die feingranulare Parallelisierungsextraktion (engl. fine-grained parallelism extraction) analysiert zun\u00e4chst die ben\u00f6tigten Datentypen hinsichtlich eines Kompromisses aus effizienter Ausnutzung der Hardware und der ben\u00f6tigten Genauigkeit der Ergebnisse. Dies erlaubt es, die SIMD (engl. single instruction, multiple data) Einheiten der Architektur auszunutzen, indem beispielsweise vier 8-Bit-Additionen gleichzeitig ausgef\u00fchrt werden anstelle einer 32-Bit-Addition. Wie in [5] dargestellt, wird au\u00dferdem ermittelt, ob Zahlen in einer Festkommadarstellung repr\u00e4sentiert werden k\u00f6nnen. Der Einsatz kann die Performanz bei der Ausf\u00fchrung erh\u00f6hen, hat aber Einfluss auf die Genauigkeit. Des Weiteren werden Schleifen transformiert, um Zugriffe auf Daten besser an die vorhandenen Caches anzupassen.<\/p>\n<p>Die grobgranulare Parallelisierung, wie sie in [6] vorgestellt wurde, verteilt die Anwendung auf die einzelnen Kerne der Zielplattform. Ziel dieser Optimierung ist es, die Ausf\u00fchrungszeit des gesamten Programms zu reduzieren, indem m\u00f6glichst viele parallele Recheneinheiten der Architektur gleichzeitig verwendet werden. F\u00fcr die Parallelisierung wird auf eine hierarchische Task-Darstellung des Programms zur\u00fcckgegriffen. Jedes Kontrollflusskonstrukt, wie Schleife oder Bedingung, innerhalb des Programmablaufs sorgt f\u00fcr das Hinzuf\u00fcgen einer neuen Ebene in der Hierarchie. Ein Beispiel ist in Abbildung 2 (siehe\u00a0<a title=\"Effiziente Embedded-Multicore-Programmierung (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_effiziente_embedded-multicore-programmierung_emmtrix_technologies_oey__stripf.pdf\">PDF<\/a>) dargestellt. Die Darstellung erlaubt es, die Parallelisierung sowohl von oben herab als auch von unten herauf durchzuf\u00fchren. Auf diese Weise kann eine optimale Verteilung der Aufgaben auf die einzelnen Kerne f\u00fcr jede Ebene ermittelt werden und anschlie\u00dfend der optimale Gesamtablauf bestimmt werden.<\/p>\n<p>Die parallele Codegenerierung [6] erzeugt schlie\u00dflich parallelen C-Code, der auf der Hardware oder den zugeh\u00f6rigen Simulatoren ausgef\u00fchrt werden kann. Dazu erstellt die Codegenerierung separaten Quellcode f\u00fcr die einzelnen Kerne der Hardware-Plattform, indem Datenabh\u00e4ngigkeiten zwischen den einzelnen Prozessoren \u00fcber Kommunikationsinstruktionen aufgel\u00f6st werden. Die Kommunikationssynthese achtet dabei auf eine Reduzierung der anfallenden Wartezeiten und ist auf Systeme mit verteiltem Speicher optimiert, aber nicht auf sie beschr\u00e4nkt. F\u00fcr die Kommunikation k\u00f6nnen sowohl verbreitete Modelle wie MPI (message passing interface) als auch spezielle Funktionen der jeweiligen Plattformen ausgenutzt werden.<\/p>\n<p>Der erzeugte Code kann automatisch instrumentiert werden, um Laufzeitinformationen mit Hilfe eines Simulators zu ermitteln. Diese Informationen k\u00f6nnen verwendet werden, um die Parallelisierung und damit auch die Performanz iterativ zu verbessern.\u00a0[7] Dazu flie\u00dfen die Laufzeiten der einzelnen Codeteile und der \u00dcbertragung von Daten zur\u00fcck in die grobgranulare Parallelisierung und erm\u00f6glichen eine Aufteilung, die besser an die tats\u00e4chliche Hardware angepasst ist.<\/p>\n<h2>Ergebnisse<\/h2>\n<p>Die Werkzeugkette soll zwei Ziele erf\u00fcllen: Zum einen soll die Leistungsf\u00e4higkeit von Mehrkernsystemen durch eine sinnvolle Parallelisierung der Anwendung ausgenutzt werden k\u00f6nnen. Zum anderen soll die Produktivit\u00e4t gesteigert werden, indem der Entwicklungsaufwand f\u00fcr parallele eingebettete Systeme reduziert wird.<\/p>\n<p>In Abbildung 3 (siehe\u00a0<a title=\"Effiziente Embedded-Multicore-Programmierung (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_effiziente_embedded-multicore-programmierung_emmtrix_technologies_oey__stripf.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) ist die im Projekt ermittelte Reduktion des Entwicklungsaufwands dargestellt. Verglichen wurde eine manuelle Umsetzung eines bestehenden Algorithmus in parallelem C-Code mit dem Einsatz des Parallelisierungswerkzeugs, das in ALMA entwickelt wurde. Bei den gew\u00e4hlten Beispielen konnten dabei Einsparungen von 30 bis 57 % in der Entwicklungszeit erreicht werden. Dabei konnte, wie in Abbildung 4 (siehe\u00a0<a title=\"Effiziente Embedded-Multicore-Programmierung (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_effiziente_embedded-multicore-programmierung_emmtrix_technologies_oey__stripf.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) dargestellt, ein Speedup von 2,8 beim Einsatz von vier Kernen erreicht werden.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Die vorgestellte ALMA-Werkzeugkette erleichtert die Programmierung von eingebetteten Multicore-Systemen, indem die zeitaufw\u00e4ndige Parallelisierung automatisiert durchgef\u00fchrt wird. Die Evaluation zeigte, dass der Entwicklungsaufwand um bis zu 57% reduziert werden konnte und dabei ein Speedup von 2,8 beim Einsatz von vier Kernen erreicht werden konnte.<\/p>\n<p>Die ALMA-Technologie wird der Industrie durch das EXIST-gef\u00f6rderte KIT-Spin-Off &#8222;emmtrix Technologies&#8220; (www.emmtrix.com) verf\u00fcgbar gemacht, weiterentwickelt und an spezielle Kundenanforderungen angepasst. Die Technologie erm\u00f6glicht Unternehmen, Mehrkernprozessoren im eingebetteten Bereich einfacher einzusetzen. Bei der Entwicklung werden Kosten reduziert sowie die Time-to-Market verk\u00fcrzt. F\u00fcr Entwickler wird durch Automatisierung und Integration von Spezialwissen die Programmierung eingebetteter Mehrkernsysteme vereinfacht.<\/p>\n<p>emmtrix setzt dabei auf einen in der Industrie etablierten Workflow, bei dem Algorithmen in MATLAB entwickelt und f\u00fcr die Ausf\u00fchrung auf der Hardware nach C-Code \u00fcbersetzt werden. Dies erfolgt bei Singlecore-Prozessoren automatisch mit Hilfe eines Codegenerators. F\u00fcr die Umsetzung auf Multicore-Prozessoren muss derzeit jedoch auf eine manuelle Neu-Implementierung zur\u00fcckgegriffen werden. Die emmtrix-L\u00f6sung wird vollst\u00e4ndig in diesen Workflow integriert (siehe Abbildung 5,\u00a0<a title=\"Effiziente Embedded-Multicore-Programmierung (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_effiziente_embedded-multicore-programmierung_emmtrix_technologies_oey__stripf.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) und erlaubt es dem Entwickler, den MATLAB-Code effizient auf eingebettete Multicore-Systeme umzusetzen.<\/p>\n<h2>Literatur- und Quellenverzeichnis<\/h2>\n<table border=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"1%\">[1]<\/td>\n<td valign=\"top\">&#8222;Next Generation Embedded Hardware Architectures: Driving Onset of Project Delays, Costs Overruns, and Software Development Challenges&#8220;, VDC Research, September 2010.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[2]<\/td>\n<td valign=\"top\">J. Becker, T. Stripf, O. Oey, M. Huebner, S. Derrien, D. Menard, O. Sentieys, G. Rauwerda, K. Sunesen, N. Kavvadias, K. Masselos, G. Goulas, P. Alefragis, N. Voros, D. Kritharidis, N. Mitas and D. Goehringer, &#8222;From Scilab to High Performance Embedded Multicore Systems: The ALMA Approach&#8220;, in\u00a0<em>Digital System Design (DSD), 2012 15th Euromicro Conference on<\/em>, 2012.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[3]<\/td>\n<td valign=\"top\">R. Koenig, L. Bauer, T. Stripf, M. Shafique, W. Ahmed und J. a. H. J. Becker, &#8222;KAHRISMA: A Novel Hypermorphic Reconfigurable-instruction-set Multi-grained-array Architecture&#8220;, in\u00a0<em>Proceedings of the Conference on Design, Automation and Test in Europe<\/em>, Dresden, Germany, 2010.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[4]<\/td>\n<td valign=\"top\">T. Bruckschloegl, O. Oey, M. Ruckauer, T. Stripf und J. Becker, &#8222;A Hierarchical Architecture Description for Flexible Multicore System Simulation&#8220;, in\u00a0<em>Parallel and Distributed Processing with Applications (ISPA), 2014 IEEE International Symposium on<\/em>, Milano, Italy, 2014.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[5]<\/td>\n<td valign=\"top\">G. Deest, T. Yuki, O. Sentieys und S. Derrien, &#8222;Toward scalable source level accuracy analysis for floating-point to fixed-point conversion&#8220;, in\u00a0<em>Proceedings of the 2014 IEEE\/ACM International Conference on Computer-Aided Design (ICCAD &#8217;14)<\/em>, Piscataway, NJ, USA, 2014.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[6]<\/td>\n<td valign=\"top\">G. Goulas, C. Valouxis, P. Alefragis, N. Voros, O. Oey, T. Stripf, T. Bruckschloegl, J. Becker, C. Gogos, A. El Moussawi, M. Naullet und T. Yuki, &#8222;Coarse-Grain Optimization and Code Generation for Embedded Multicore Systems&#8220;, in\u00a0<em>Digital System Design (DSD), 2013 Euromicro Conference on\u00a0<span class=\"st\">Digital System Design<\/span><\/em>, 2013.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[7]<\/td>\n<td valign=\"top\">J. Becker, T. Bruckschloegl, O. Oey, T. Stripf, G. Goulas, N. Raptis, C. Valouxis, P. Alefragis, N. Voros und C. Gogos, &#8222;Profile-Guided Compilation of Scilab Algorithms for Multiprocessor Systems&#8220;, in\u00a0<em>Reconfigurable Computing: Architectures, Tools, and Applications<\/em>, Springer International Publishing, 2014, pp. 330-336.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a title=\"Effiziente Embedded-Multicore-Programmierung (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_multicore_effiziente_embedded-multicore-programmierung_emmtrix_technologies_oey__stripf.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>Automatische Parallelisierung von Scilab\/MATLAB-Anwendungen Autoren: Oliver Oey, Timo Stripf, emmtrix Technologies Beitrag &#8211; Embedded Software Engineering Kongress 2015 Durch immer weiter steigende Performanzanforderungen wird in immer mehr Bereichen anstelle von Einkernprozessoren auf Mehrkernprozessoren gesetzt. Dieser Wechsel ist im Bereich von Desktop-PCs oder Smartphones bereits vollzogen, im Bereich der eingebetteten Systeme ist der Umbruch jedoch noch [&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-8076","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>Effiziente Embeddded-Multicore-Programmierung - 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\/efficient-embedded-multicore-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Effiziente Embeddded-Multicore-Programmierung - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Automatische Parallelisierung von Scilab\/MATLAB-Anwendungen Autoren: Oliver Oey, Timo Stripf, emmtrix Technologies Beitrag &#8211; Embedded Software Engineering Kongress 2015 Durch immer weiter steigende Performanzanforderungen wird in immer mehr Bereichen anstelle von Einkernprozessoren auf Mehrkernprozessoren gesetzt. Dieser Wechsel ist im Bereich von Desktop-PCs oder Smartphones bereits vollzogen, im Bereich der eingebetteten Systeme ist der Umbruch jedoch noch [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/efficient-embedded-multicore-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T08:42:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T04:08:36+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=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Effiziente Embeddded-Multicore-Programmierung\",\"datePublished\":\"2025-11-29T08:42:31+00:00\",\"dateModified\":\"2026-02-11T04:08:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/\"},\"wordCount\":1842,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/\",\"name\":\"Effiziente Embeddded-Multicore-Programmierung - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T08:42:31+00:00\",\"dateModified\":\"2026-02-11T04:08:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/effiziente-embeddded-multicore-programmierung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Effiziente Embeddded-Multicore-Programmierung\"}]},{\"@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":"Efficient Embedded Multicore Programming - 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\/efficient-embedded-multicore-programming\/","og_locale":"en_GB","og_type":"article","og_title":"Effiziente Embeddded-Multicore-Programmierung - MicroConsult Academy GmbH","og_description":"Automatische Parallelisierung von Scilab\/MATLAB-Anwendungen Autoren: Oliver Oey, Timo Stripf, emmtrix Technologies Beitrag &#8211; Embedded Software Engineering Kongress 2015 Durch immer weiter steigende Performanzanforderungen wird in immer mehr Bereichen anstelle von Einkernprozessoren auf Mehrkernprozessoren gesetzt. Dieser Wechsel ist im Bereich von Desktop-PCs oder Smartphones bereits vollzogen, im Bereich der eingebetteten Systeme ist der Umbruch jedoch noch [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/efficient-embedded-multicore-programming\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T08:42:31+00:00","article_modified_time":"2026-02-11T04:08:36+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Effiziente Embeddded-Multicore-Programmierung","datePublished":"2025-11-29T08:42:31+00:00","dateModified":"2026-02-11T04:08:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/"},"wordCount":1842,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/","url":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/","name":"Efficient Embedded Multicore Programming - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T08:42:31+00:00","dateModified":"2026-02-11T04:08:36+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/effiziente-embeddded-multicore-programmierung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Effiziente Embeddded-Multicore-Programmierung"}]},{"@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\/8076","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=8076"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8076\/revisions"}],"predecessor-version":[{"id":11602,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8076\/revisions\/11602"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}