Software hinkt hinterher

Multicore-Chips werden immer mehr zum Problem

23.03.2009
Von 
Thomas Cloer war Redakteur der Computerwoche.
Die großen Chiphersteller 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 Technik werden aus Sicht von Teilnehmern der Multicore Expo in Santa Clara in vergangenen Woche allerdings konterkariert, wenn es der Industrie nicht gelingt, bestimmte Hardware- und Programmierprobleme zu lösen.

Die meiste Software ist heutzutage noch immer für Single-Core-Prozessoren programmiert und muss neu geschrieben oder upgedatet werden, um die wachsende Zahl der Rechenkerne auszunutzen, die Intel, Sun und andere Halbleiterhersteller in ihre Produkte einbauen, warnt Linley Gwennap, President und Principal Analyst der Linley Group (potenziert wird das Problem teilweise noch dadurch, dass die Cores zum Teil auch noch mehrere Augaben gleichzeitig erledigen können, neudeutsch Multithreading).

Zwar laufen Off-the-shelf-Applikationen auf CPUs mit bis zu vier Cores oft schneller. Darüber hinaus aber nimmt die Leistung oftmals nicht mehr zu und bei noch mehr Cores unter Umständen sogar ab, so Gwennap. Die Experten von Gartner hatten kürzlich ebenfalls schon auf diese Problematik hingewiesen.

Chip- und Systemhersteller haben inzwischen begonnen, Entwickler hinsichtlich der Herausforderung zu erziehen 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-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, so dass eine Rechenaufgabe zerteilt in kleine Häppchen von mehreren Kernen gleichzeitig erledigt werden kann, ist nicht wirklich neu. Gebräuchlich ist derlei Parallelisierung bisher aber vor allem in Nischenbereichen wie 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 eigneten, und diesen Job dann 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.