Skip to main content
European Commission logo print header

Cross-Layer and Multi-Objective Programming Approach for Next Generation Heterogeneous Parallel Computing Systems

Article Category

Article available in the following languages:

Innovative Softwaretools optimieren die Kodierung für die Parallelverarbeitung

Software für Geräte mit mehreren Prozessoren ist meist ineffizient. Neue Tools schaffen hier Optimierungsmöglichkeiten.

Digitale Wirtschaft icon Digitale Wirtschaft

Frühe PCs und Handgeräte hatten nur einen einzigen Prozessorchip bzw. ein einziges „Gehirn“. Aufgrund von Prozessorengpässen sind sie bei umfangreichen Berechnungen allerdings nur wenig effizient. Eine weitaus leistungsstärkere Alternative hingegen ist die parallele Datenverarbeitung. Dabei werden umfangreiche Berechnungen in kleinere Blöcke zerlegt und auf mehrere Chips verteilt. Die Idee gibt es schon seit den Anfängen der Informatik, sie war jedoch lange Zeit auf extrem leistungsstarke Maschinen beschränkt. Da die Kosten für zusätzliche Prozessoren gesunken sind, wurden in den letzten Jahren auch viele leistungsschwächere Computer, Spielekonsolen und andere Geräte mit mehreren Prozessoren ausgestattet. Die zusätzlichen Prozessoren waren ursprünglich auf bestimmte Funktionen spezialisiert, inzwischen können generische Prozessoren allerdings für die meisten Aufgaben programmiert werden.

Das Optimierungsproblem

Das Problem liegt in der Schwierigkeit, Computercodes zu schreiben, die bestimmten Prozessoren Berechnungen zuweisen. Softwareentwickler können solche Codes bisher für bis zu vier Prozessoren erstellen, obwohl dies viel Zeit in Anspruch nimmt. Denn mit einer zunehmenden Anzahl von Prozessoren wird die Optimierung der Zuordnung immer schwieriger. Aus diesem Grund nutzen aktuelle Softwareprogramme die Datenverarbeitungsleistung eines Gerätes selten voll aus. Softwareentwickler müssen viele Faktoren berücksichtigen, wie die Anzahl der zu verwendenden Prozessoren, welche Teile einer Anwendung auf welchem Prozessor ausgeführt werden sollen und ob die Prozessoren spezialisiert sein sollten. Das EU-finanzierte Projekt PHANTOM trug dazu bei, diese Entscheidungen zu erleichtern. „Wir wollten den Entscheidungsprozess, wie ein Programm auf mehreren Prozessoren ausgeführt werden soll, so automatisieren, dass bestimmte Ziele erreicht werden“, so Scott Hansen, Projektkoordinator. „Beispielsweise müssen einige Systeme immer innerhalb eines bestimmten Zeitrahmens reagieren, während andere den Energieverbrauch minimieren müssen. Wieder andere müssen die Prozessorauslastung maximieren, um ein Problem so schnell wie möglich zu beheben.“ Das Projektteam prüfte die Möglichkeit, Tools zu erstellen, die Softwareentwicklern und Programmierern dabei helfen, den besten Weg zur Erreichung dieser manchmal widersprüchlichen Ziele zu finden.

Neue Tools

Das Team entwickelte erfolgreich eine Reihe innovativer Tools. Dazu gehören sehr fortschrittliche Algorithmen zur Automatisierung des komplexen Entscheidungsprozesses, der erforderlich ist, um eine Optimierung der Parallelverarbeitung für den beabsichtigten Zweck zu erzielen. Das Team entwickelte außerdem erweiterte Lernfunktionen, mit denen Anwendungen während der Ausführung überwacht und verfügbare Prozessoren basierend auf der Echtzeitnutzung dynamisch optimiert werden können. Die Erstellung solcher Tools hätte die Kapazität eines einzelnen Konsortialpartners überschritten. „Die Zusammenarbeit im Rahmen des EU-Programms Horizont 2020 hat dies jedoch möglich gemacht", sagt Hansen. „Wir hatten aber auch sehr starke Anwenderpartner aus der Industrie, die sichergestellt haben, dass die zu entwickelnden Tools für ihre Entwickler und damit auch für Entwickler in vielen Branchen in ganz Europa erhebliche positive Veränderungen bereithalten werden.“ Die Industriepartner von PHANTOM validierten die neuen Tools, indem sie sie zur Entwicklung industrieller Anwendungen auf komplexen Multiprozessorsystemen verwendeten. Die Tools sind als Open-Source-Versionen öffentlich verfügbar. Diese sind einfach zu installieren und ermöglichen es den Entwicklern, die Tools zu bewerten. Die Handelspartner des Projekts bieten darüber hinaus auch kostenpflichtige Versionen in Kombination mit Beratungs- und Anpassungsdiensten an. Gegenwärtige Programmiermethoden für mehrere Prozessoren führen normalerweise zu einer unzureichenden Auslastung. Die Implementierung von Optimierungen übersteigt dabei die Fähigkeiten eines jeden nicht hochspezialisierten und -qualifizierten Entwicklers. Zudem sind die Kosten für Personalschulungen auf diesem Niveau für die meisten Organisationen nicht tragbar. Mit den neuen Tools des Projekts PHANTOM können Softwareentwickler jetzt Anwendungen schreiben, mit denen eine vollständige Optimierung erreicht wird. Dies wird die Produktivität steigern, die Kosten senken und die Entwicklungszeiten für Anwendungen verkürzen.

Schlüsselbegriffe

PHANTOM, Software, Multiprozessor, Softwareentwickler, Kodierung, parallele Datenverarbeitung, Parallelverarbeitung

Entdecken Sie Artikel in demselben Anwendungsbereich