Software oft single threaded

Multicore-CPUs werden kaum ausgelastet

Thomas Cloer war Redakteur der Computerwoche.
Statt den Takt immer weiter nach oben zu schrauben, setzen die Prozessorhersteller seit Jahren auf mehr Rechenleistung durch Multicore-CPUs. Doch viele Programme belegen nur einen Core und nutzen die mögliche Leistung der CPU nicht aus.

Statt den Takt immer weiter nach oben zu schrauben, setzen die Prozessorhersteller seit Jahren auf mehr Rechenleistung durch Multicore-CPUs. Doch viele Programme belegen nur einen Core und nutzen die mögliche Leistung der CPU nicht aus.

Die hohe Rechenleistung bei niedrigem Energieverbrauch kommt aus Sicht der Teilnehmern der Multicore Expo in Santa Clara in vergangene Woche kaum zur Geltung. Die meiste Software ist immer noch single threaded programmiert. Sie muss komplett umgeschrieben werden, um die wachsende Zahl der Cores in den CPUs von Intel, AMD, IBM und Sun auszunutzen.

Zwar laufen Off-the-shelf-Applikationen auf CPUs mit bis zu vier Cores oft schneller als mit nur einem oder zwei Cores. Darüber hinaus aber nimmt die Leistung oft nicht mehr zu. Bei noch mehr Cores geht sie unter Umständen sogar zurück, warnt Linley Gwennap, President und Principal Analyst der Linley Group. Die Experten von Gartner hatten kürzlich ebenfalls schon auf diese Problematik hingewiesen.

Chip- und Systemhersteller haben inzwischen begonnen, die Softwareentwickler besser zu schulen und ihnen 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-Unis. Das Fehlen von Multicore-Programmierwerkzeugen für Mainstream-Entwickler hält Gwennap für das vielleicht größte Problem, vor dem die Computerindustrie heute steht.

Die Parallelisierung von Anwendungen ist nicht wirklich neu. Gebräuchlich ist die Parallelisierung bisher aber vor allem in Nischenbereichen wie dem High-Performance Computing (HPC). Parallel-Programmierwerkzeuge bietet zum Beispiel Intel mit dem „Parallel Studio for C and C++“ an. Andere Anbieter in diesem Bereich sind Codeplay, Polycore Software oder Clik Arts. Außerdem gibt es ein neues C-basierendes Programmiermodell namens "OpenCL", das von The Khronos Group entwickelt und von unter anderem Apple, Intel, AMD sowie Nvidia unterstützt wird.

Das Multicore-Expo-Publikum wertet viele dieser Tools aber noch als "work in progress". Software-Compiler sollten in der Lage sein, selbst Code-Teile zu identifizieren, die sich zur Parallelisierung eignen. Dann sollten sie diesen Job ohne manuelles Eingreifen des Entwicklers erledigen, findet etwa Shay Gal-on, Director of Software Engineering bei der Non-profit-Organisation EEMBC, die Benchmarks für Embedded-Chips entwickelt. (Computerwoche/ala) (wl)

Zur Startseite