Fall Processor Forum: Programmierer haben Probleme mit Mehrkern-CPUs
Ein Referent von Microsoft eröffnete den zweiten Tag des Fall Processor Forums und klagte dabei über die Schwierigkeiten, die Doppel- und Mehrkernprozessoren bei der Programmierung bereiten.
Dass ausgerechnet ein Referent des Software-Herstellers Microsoft den zweiten Tag des Processor Forums eröffnete, wirft ein bezeichendes Licht auf die Branche: Hardware- und Software-Ingenieure werden sich wohl künftig öfter sehen.
"Ich komme aus der Software-Welt. Soll ich euch was sagen? Die Gratistouren sind vorbei", begrüsste Herb Sutter, Software-Architekt bei Microsoft, kalauernd das Entwicklerforum in San Jose. Der angenehme Zustand, dass Rechner mit jeder neuen Hardware-Generation automatisch schneller werden, egal wie komplex und schwerfällig die Software ausfällt, ist nach seinen Worten mit Multicore-Architekturen vorerst beendet.
Zwar können die Transaktionen in typischen Server-Anforderungsprofilen gut auf mehrere Cores verteilt werden, aber klassische sequentielle Anwendungsroutinen werden von parallelen Architekturen kaum profitieren. Video- oder Spielsequenzen lassen so die meisten Ressourcen unberührt. Nur latente Code-Parallelität wird neue Killer-Anwendungen schaffen. "Dieser Wechsel ist dramatischer als die Einführung der Objektorientierung", behauptet Sutter. Damit spricht er primär die eigene Zunft an, doch die Auswirkungen werden auch Hardware-Designer betreffen. Denn: Die Parallelisten unter den Prozessorbauern – praktisch alle zählen sich nunmehr dazu – haben der Software-Industrie Riesenprobleme bereitet.
Sprachen und Werkzeuge sind unzureichend fĂĽr die neuen Anforderungen, sagte Sutter. Deshalb mĂĽssten neue Abstraktionslevel in Sprachen und Programmier-Frameworks her. Insbesondere sollten Erweiterungen schrittweise in die Sprachen eingefĂĽhrt, um den Programmierern Lern- und Erfahrungsspielraum zu lassen.
Sutters Philippika an die Hardware-Community legt nahe, dass der Umschwung zu Mehrkernsystemen zu plötzlich kommt. Sein Appell daher: Beim Hardware-Design sollten die Entwickler mehr auf die Programmierbarkeit achten als auf die Leistung. Und vor allem müsste eines her: Werkzeuge, Werkzeuge, Werkzeuge. Bei Microsoft leitet Sutter das Projekt "Concur" – eine Abstraktionssprache, die die Berücksichtigung der parallelen Hardware-Strukturen ermöglicht.
Ähnlich herkulische Anstrengungen haben auch die Hersteller von Virtualisierungs-Engines hinter sich, mit deren Hilfe in der x86-Welt mehrere Systeme gleichzeitig auf der selben Hardware laufen können. Simon Crosby, Chef von XenSource, beschrieb den neuen Hypervisor des hinter der Virtualisierungssoftware XEN stehenden Open-Source-Herstellers: Die Software entkoppelt Betriebssystem und Anwendungen von der darunterliegenden Hardware, sodass Speicher- und Rechenressourcen von mehreren virtuellen Maschinen besser ausgenutzt werden können.
Der Hypervisor, eine Art Verkehrsleitsystem, regelt die komplexe Zuweisung der logischen und physischen Komponenten, ihre zeitliche Abfolge und ihre Befugnisse. VM-Container erlauben das Zusammenpacken von Daten, Anwendungslogik, Betriebssystem und Treibern in kompakte Einheiten, die zur Konsolidierung und Lastumverteilung verschoben werden können. In 50 Millisekunden wird eine laufende VM zwischen zwei Rechnereinheiten verlegt, erläuterte Crosby.
AMD versucht,mit der Virtualisierungstechnik Pacifica solche komplexen Software-Schichten auf dem Chip zu unterstützen. Dazu gehören die Isolation von Speichersegmenten, die dem Hypervisor unter anderem das Speichermanagement abnehmen und beträchtlichen Rechenaufwand sparen soll.
Siehe zum Fall Processor Forum (FPF) 2005 auch:
- Neue DSPs und AMDs Pacifica
- Multiple Multi-Cores
- Video wird Vorzeigeanwendung für Parallelität
- IBM startet Produktion des Prozessors fĂĽr die Xbox 360
- Intel verschiebt nächste Itanium-Generation Montecito
- Dualcore-CPU auf Power-Basis lernt Stromsparen
(Erich Bonnert) / (thl)