Multicore-Chips werden immer mehr zum Problem

23.03.2009
Die großen Hersteller setzen durchweg auf mehr Prozessorkerne, um die Leistung von Server- und PC-Chips zu steigern. Aber die Software kommt nicht mit.

Die Vorteile der neuen Chiptechnik werden aus Sicht von Teilnehmern der Multicore Expo, die vergangene Woche in Santa Clara stattfand, konterkariert, wenn es der Industrie nicht gelingt, bestimmte Hardware- und Programmierprobleme zu lösen. Die meiste Software ist heutzutage noch immer für Singlecore-Prozessoren programmiert und muss neu geschrieben oder aktualisiert werden, um die wachsende Zahl der Rechenkerne, die Intel, Sun und andere Halbleiterhersteller in ihre Produkte einbauen, auszunutzen, warnt Linley Gwennap, President und Principal Analyst der Linley Group. Potenziert wird das Problem teilweise noch dadurch, dass die Cores mehrere Aufgaben gleichzeitig erledigen können, also Multithreading beherrschen.

Schlimmstenfalls leistungsmindernd

Zwar laufen Off-the-Shelf-Applikationen auf CPUs mit bis zu vier Kernen oft schneller. Darüber hinaus nimmt aber die Leistung meist nicht mehr zu, im Gegenteil, bei weiter steigender Core-Anzahl geht sie unter Umständen sogar zurück, so Gwennap. Darauf hatten kürzlich auch die Experten von Gartner hingewiesen.

Chip- und Systemhersteller haben inzwischen begonnen, Entwickler für das Problem zu sensibilisieren und ihnen bessere Werkzeuge für die Multicore-Programmierung an die Hand zu geben. Intel und Microsoft etwa stifteten vor einem Jahr 20 Millionen Dollar für zwei Forschungszentren an US-Universitäten.

Die Parallelisierung von Anwendungen, so dass eine Rechenaufgabe zerteilt in kleine Häppchen von mehreren Kernen gleichzeitig erledigt werden kann, ist nicht wirklich neu. Gebräuchlich ist dieses Verfahren bisher aber vor allem in Nischenbereichen wie High-Performance Computing (HPC).

Parallel-Programmierwerkzeuge bieten zum Beispiel Intel und Spezialisten wie Codeplay, Polycore Software oder Clik Arts an. Außerdem gibt es ein neues C-basierendes Programmiermodell namens "OpenCL", das von The Khronos Group entwickelt wird.

Noch nicht ausgereift

Das Multicore-Expo-Publikum wertete viele dieser Tools aber noch als "Work in Progress". Software-Compiler sollten in der Lage sein, selbst Codeteile zu identifizieren, die sich für eine Parallelisierung eignen, und diesen Job dann ohne manuelles Eingreifen des Entwicklers erledigen, meint etwa Shay Gal-on, Director of Software Engineering bei der Non-Profit-Organisation EEMBC. (tc)