Noch vor wenigen Jahren war von einer Prozessorgeneration zur nächsten jeweils eine beachtliche Leistungssteigerung zu verzeichnen, die, neben einer Erhöhung der Transistordichte auf den Chips, in großem Maße auf eine Erhöhung der Taktrate zurückzuführen war. Die Taktrate wird für Prozessoren in Hertz angegeben und steht für die Geschwindigkeit, mit der Daten von einem Prozessor verarbeitet werden können. Durch die immerwährende Erhöhung dieser Taktrate konnten immer komplexere Anwendungen immer größere Datenmengen in kürzerer Zeit verarbeiten – der wachsende Funktionsreichtum des Office-Pakets von Microsoft ist hierfür ein gutes Beispiel.

Jedoch führte die rasante Erhöhung der Transistordichte auf den Chips bei gleichzeitiger Erhöhung der Taktrate zu einem erheblichen Kühlungsproblem (der sogenannten »Power-Wall«), da die Hitzeentwicklung und der Energieverbrauch zu hoch sind, um diese Entwicklung noch weiter vorantreiben zu können. Die Lösung der Chip-Hersteller zur Umgehung des Problems ist die Entwicklung von sogenannten Multicore-Prozessoren. Multicore-Prozessoren vereinigen zwei oder mehr unabhängige Prozessor-Kerne auf einem Chip und sind so in der Lage, mehrere Berechnungen gleichzeitig durchführen. So ist es den Prozessor-Herstellern möglich, die Leistungsfähigkeit der Prozessoren weiter zu erhöhen, ohne gleichzeitig die Taktfrequenz anheben zu müssen und auf die Power-Wall zu treffen.

Welche Konsequenzen hat dieser Paradigmenwechsel für die Software-Industrie? Zunächst einmal werden Anwendungen nicht mehr automatisch schneller, wenn eine neue Prozessorgeneration herauskommt. Der Grund ist, dass eine klassische Anwendung ein sequenzielles Programm ist und daher nur einen Prozessor-Kern auslasten kann. Da die Taktrate der einzelnen Prozessor-Kerne nicht mehr erhöht wird, stagniert auch die Ausführungsgeschwindigkeit einer solchen Anwendung. Darüber hinaus wird dieses technologische Dilemma zusätzlich verschärft, da die Entwicklung von Multicore-Software komplexer ist und noch nicht auf ein standarisiertes Methoden-Set zurückgegriffen werden kann.

Im Rahmen des MWare-Projekts hat das Fraunhofer IAO eine Befragung unter deutschen Softwareentwicklern und Unternehmen im Bereich der Softwareentwicklung durchgeführt. Insgesamt haben mehr als 300 Entwickler aus unterschiedlichen Unternehmen an der Befragung teilgenommen, was uns einen interessanten Einblick auf die Sichtweise der deutschen Softwareindustrie bezüglich des Einsatzes von Multicore-Technologie erlaubt.

Eine entscheidende Erkenntnis der Befragung war, dass sich ein großer Teil der deutschen Softwareindustrie noch nicht mit dem Paradigmenwechsel befasst hat. So haben auf die Frage »Haben Sie sich mit dem bevorstehenden Paradigmenwechsel hin zu Multicore-Prozessoren befasst?« 48 % der Befragten mit »Ja« und ebenfalls 48% mit »Nein« geantwortet.

Zudem ist eine Grundvoraussetzung für einen erfolgreichen Start in die Multicore-Zukunft, dass das entsprechende Know-how in den Unternehmen vorhanden ist und bei Bedarf abgerufen werden kann. Daher zielte eine weitere Frage auf das in den Unternehmen vorhandene Know-how bezüglich Multicore ab. In Abbildung 1 ist die Verteilung der Antworten visualisiert und es zeigt sich, dass über die Hälfte der Unternehmen bisher kein oder nur wenig Know-how bezüglich Multicore-Technologie aufgebaut hat.


Abb. 1: Antworten auf die Frage »Wie schätzen Sie die Kompetenzen bzgl. Multicore-Softwareentwicklung in Ihrem Unternehmen ein?«

Da die Entscheidung der führenden Prozessorhersteller für Multicore-Prozessoren gefallen ist, muss die deutsche Softwareindustrie darauf reagieren. Insbesondere die Tatsache, dass sequenzielle Software zukünftig nicht mehr automatisch schneller wird, erfordert sowohl bei Anwendern als auch Kunden langfristig Geschwindigkeitsoptimierungen der Software-Anwendungen. Ein Ergebnis der Befragung ist, dass in den Unternehmen selbst, aber auch in der Ausbildung und Lehre, Konzepte der parallelen Programmierung mit aufgenommen werden müssen, um den gegenwärtigen Mangel an Know-how zu beheben. Darüber hinaus müssen weitere Werkzeuge entwickelt werden, die die Entwicklung von Software auf Basis von Multicore-Technologie auf verschiedenen Ebenen unterstützen.



Kategorien: Digitalisierung
Tags: