Superrechner für zu Hause

Was früher nur für Rechenzentren zu haben war, kommt heute auf jeden Schreibtisch: Der Parallelrechner wird zum Massenprodukt.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 11 Min.
Von

Als Anwar Ghuloum 2002 bei Intel anheuerte, war die Computerwelt noch in Ordnung – sein neuer Arbeitgeber der unangefochtene Platzhirsch unter den Chipherstellern. Jahr für Jahr stellte Intel neue Computer-Prozessoren vor, die schneller waren als die alten Modelle: "Wir waren schon bei drei Gigahertz angekommen, und die Roadmap sah zukünftige Taktfrequenzen von bis zu zehn Gigahertz vor", erinnert sich der Ingenieur, der heute zu den wichtigsten Entwicklern des Chipriesen zählt. Intel-Technologiechef Pat Gelsinger höchstpersönlich sagte damals voraus, man werde bis 2010 Chips mit 30 Gigahertz bauen können, die eine schwindelerregende Rechenleistung von einer Billion Instruktionen pro Sekunde liefern.

Gelsinger lag genauso daneben wie der Rest seines Teams. Immer noch bauen Intel und seine Konkurrenten Chips, die eine Marke von vier GHz nicht überschreiten – Frequenzen von fünf Gigahertz gelten als das höchste der Gefühle mit der aktuellen Siliziumtechnologie. Denn in den letzten Jahren traten unerwartet Probleme bei Wärmeentwicklung und Stromverbrauch auf, die der praktikablen Taktrate eine natürliche Grenze setzten – und damit der Geschwindigkeit, mit der Computer arbeiten können.

Um diese Geschwindigkeit trotzdem weiter steigern zu können, setzen die Chiphersteller seit einigen Jahren auf einen anderen Ansatz: Statt die einzelnen Chips immer schneller laufen zu lassen, erhöhen sie die Zahl der Prozessoren pro Computer. Chips mit zwei Rechenwerken – sogenannten Kernen – sind heute der Standard bei Desktop-PCs. Und Prozessoren mit vier Kernen sind keine Seltenheit mehr. Auf lange Sicht erwarten Experten sogar Maschinen mit Hunderten von Kernen. Eine Rechenkraft, die bislang nur Betreibern wissenschaftlicher Rechenzentren zur Verfügung stand, ist dann auf jedem Desktop zu Hause – und könnte beispielsweise endlich die Bedienung des PCs in natürlicher, gesprochener Sprache ermöglichen. Doch hier fangen nun neue Schwierigkeiten an: Die aktuelle Software ist nicht darauf vorbereitet, mit so vielen Prozessorkernen umzugehen. Wie können Programme die vielen zukünftigen Kerne optimal nutzen? Das herauszufinden, ist mittlerweile Anwar Ghuloums Job – zusammen mit Software- Entwicklern in Amerika und China.

Wenn ein Rechner heutzutage den Eindruck erweckt, dass er mehrere Dinge gleichzeitig erledigt, dann nur deshalb, weil er so schnell zwischen diesen Einzelaktivitäten hin und her schaltet, dass es der Nutzer nicht bemerkt. Die einfachste Methode, mehrere Kerne zu nutzen, liegt deshalb in einer Art Arbeitsteilung: Beispielsweise läuft dann das Betriebssystem auf einem Kern und die Anwendungen auf einem anderen. Wirklich zukunftsfähig ist das aber nicht. Bei zwei oder vier Kernen mag das noch funktionieren – doch was ist mit den Multicore-Chips von morgen?

"In den meisten Programmen, die für eine Parallelisierung interessant sind, ist es so, dass verschiedene Abläufe auf gemeinsame Daten zugreifen", erklärt Professor Jürg Gutknecht von der ETH Zürich. "Ein Beispiel: Während wir miteinander sprechen, laufen Millionen von verschiedenen Prozessen auf der ganzen Welt ab. Das ist aber tatsächlich kein Problem, wenn die verschiedenen Prozesse wirklich voneinander unabhängig sind. Aber sobald gemeinsame Ressourcen im Spiel sind, braucht man ein Management, eine Synchronisation." Zum Glück sind die grundsätzlichen Probleme der Parallelprogrammierung bereits vor Jahrzehnten gelöst worden, sagt Leslie Valiant, Professor für Computerwissenschaften und angewandte Mathematik an der Harvard University. Die Herausforderung läge nun darin, diese alten Arbeiten für heutige Zwecke nutzbar zu machen. Die Supercomputer, die den Mehrkernansatz inspirieren, sind Geräte aus den achtziger Jahren, die von Firmen wie Thinking Machines gebaut wurden. Diese Maschinen nutzten Hunderte oder gar Tausende von handelsüblichen Prozessoren, um sie parallel zu betreiben.

Die Lektionen, die man bei der Programmierung dieser Riesen lernte, können heute als Anleitung für eine effiziente Multicore-Entwicklung dienen. Bereits damals erkannten die Informatiker, die sich mit Parallelprogrammierung beschäftigten, dass ein Hauptproblem darin liegt, die Software anzupassen. In der Regel bilden Computerprogramme die zu lösende Aufgabe als sequenziellen Ablauf ab – erst wird eine Teilaufgabe gelöst, dann die nächste und so weiter. Aber dieser lineare Code lässt sich nicht einfach zerlegen, um ihn erst von Hunderten von Prozessoren gleichzeitig abarbeiten zu lassen und dann später wieder zusammenzusetzen, korrekte Rechenergebnisse inklusive. Es stellte sich heraus, dass sich einige Aufgabenstellungen sehr leicht parallelisieren ließen, andere hingegen überhaupt nicht. Und selbst wenn eine Parallelisierung grundsätzlich möglich war, konnten die Ergebnisse anschließend in falscher Reihenfolge vorliegen.

Um parallel ablaufende Programme zu erstellen, sind also völlig neue Konzepte notwendig – Programmiersprachen, die ein Parallelisierungskonzept quasi automatisch mitbringen. Im Idealfall soll der Entwickler seinen Code so schreiben können, wie er es gewöhnt ist, die Software dann aber dafür sorgen, dass er möglichst effizient über mehrere Kerne verteilt wird. "Man hat in den siebziger und achtziger Jahren die Konzepte dafür entworfen", sagt Gutknecht. "Aber die Leute, die heute Informatik studieren, kennen die nicht aus ihrem Unterricht, weil die prozessorientierte Programmierung zu Gunsten der objektorientierten Programmierung völlig vernachlässigt wurde."

Um an diesem Problem zu arbeiten, sind die Dienste einiger in Ehren ergrauter IT-Experten aus den achtziger Jahren wieder sehr gefragt. Supercomputer-Entwickler wie David Kuck, heute emeritierter Professor an der University of Illinois, gehören dazu. Kuck gilt als prominenter Programmierer von Software-Werkzeugen für die Parallelisierung. Heute arbeitet er wieder als Berater bei Intel. Auch ein vollständiges Team der durch unzählige Aufkäufe inzwischen längst beerdigten Digital Equipment Corporation (DEC), das einst an der Implementierung eines Software-Werkzeugs für die Parallelisierung von bestehenden Programmen – dem sogenannten Message Passing Interface (MPI) – für die Supercomputer seiner Firma gearbeitet hatte, wurde zwischenzeitlich reaktiviert – schließlich wird MPI auch heute noch im High Performance Computing verwendet.

Doch obwohl entsprechende Anwendungen heute vielfach vorhanden scheinen, bleibt die Parallelisierung an sich kein triviales Problem. Ihre Vereinfachung verlangt eine konzertierte Aktion von Chipherstellern, Software-Entwicklern und Computerwissenschaftlern: Intel und Microsoft hatten deshalb gemeinsam im März 2008 zwei Universal Parallel Computing-Forschungszentren (UPCRC) gegründet: eines an der University of California, Berkeley, und eines an der University of Illinois. Denn beide Firmen profitieren gleichermaßen, wenn sich die Mehrkern-Technik als Erfolg erweist. Klappt das Vorhaben indes nicht, haben sie viel zu verlieren. Chiphersteller und Softwarekonzerne müssen die Entwickler also motivieren, die neue Technik überhaupt zu nutzen. Fehlt die Unterstützung der Programmierer, gehen schnell Marktanteile verloren: Sony musste das bei seiner Spielekonsole PlayStation 3 schmerzhaft erfahren, die nur deshalb so spät auf den Markt kam, weil es an passenden Entwicklungswerkzeugen fehlte. Noch heute hinkt das technisch brillante Gerät der Konkurrenz beim Software-Angebot hinterher. Aus diesem Grund will Microsoft entsprechend vereinfachte Programmierwerkzeuge so schnell wie möglich auf den Markt bringen. "F#" beispielsweise ist eine Parallelversion der Standardsprache ML.

Sie parallelisiert nicht nur bestimmte Funktionen innerhalb der Programmiersprache, sondern verhindert auch, dass sie falsch miteinander interagieren, sodass sich paralleler Code insgesamt einfacher entwickelt lässt. So- wohl im kommerziellen als auch im Open-Source-Markt sollen jeweils eigene neue Sprachen und Werkzeuge dabei helfen, entweder die Leistungsfähigkeit der vielen Kerne nutzbar zu machen oder zumindest ihre Komplexität zu verbergen. Unter diesen Ansätzen befindet sich etwa Googles "MapReduce"-Framework, das es erleichtern soll, parallele Operationen über Computercluster zu verteilen – oder "Hadoop", eine Open-Source-Implementation der Google-Technik, die es erlaubt, Anwendungen über Tausende Knoten zu verteilen. Neue Programmiersprachen wie "Clojure" und "Erlang" werden von vornherein mit den Anforderungen erstellt, auch parallelen Code ausgeben zu können.

Erste viel verwendete Anwendungen gibt es bereits: So entstand die populäre Facebook-Chat-Software zum Teil in Erlang. Beim MIT-Spin-off Clik Arts ist man unterdessen dabei, Programme, die in der etablierten Sprache C++ geschrieben wurden, in sogenannte Threads herunterzubrechen, die sich dann parallel über mehrere Kerne verteilen lassen. Mit solchen Ideen steht die Firma nicht allein da: Appistry aus St. Louis behauptet, dass seine Lösung, das sogenannte Enterprise Application Fabric, Anwendungen für die Microsoft-Umgebung .Net über Tausende Server verteilen kann, ohne dass eine Zeile Code verändert werden müsste.

Intel schickt Ghuloum unterdessen einmal im Monat ins Ausland, um überall auf der Welt mit Entwicklern über Multicore-Architekturen und Parallelprogrammierung zu sprechen. "Unsere Philosophie ist die, dass wir dieses Problem nicht in den nächsten ein oder zwei Jahren lösen werden. Deshalb sind viele schrittweise Verbesserungen gefragt, die wir bestehenden Sprachen hinzufügen", sagt er. "Das sollten wir nicht in einem Vakuum tun. Wir benötigen viel Feedback seitens der Entwickler. Ohne ein solches Feedback werden wir viele Fehler machen."

Doch obwohl es Anwendungen gibt, die von der Leistungsfähigkeit mehrerer Kerne profitieren können, wird der Zuwachs an Rechenleistung durch mehrere Kerne von vielen Nutzern (noch) gar nicht verwendet. Nur Hardcore-Spieler glauben üblicherweise heutzutage, dass ihr PC zu langsam ist. Microsoft bewirbt sein nächstes Betriebssystem Windows 7 gar mit dem Faktum, dass es weniger leistungs- und speicherhungrig sein soll als der unbeliebte Vorgänger Vista. Notwendig wurde dieser Schritt auch deshalb, weil Rechner mit einer einfachen Architektur und verhältnismäßig geringer Leistung zu günstigen Preisen immer beliebter werden. Auf diesen Rechnern lief Vista schlicht nicht, was dem seit 2001 auf dem Markt befindlichen XP zu mehreren Ehrenrunden verhalf.

Zyniker könnten deshalb behaupten, dass die Jagd nach immer mehr Rechenleistung eigentlich nur kommerziellen Interessen der Hersteller von Chips geschuldet ist. Was wäre also der Nachteil, wenn der Multicore-Traum platzt? Steve Wozniak, Erfinder des Apple II, würde sich darüber sogar freuen. "Das würde zu einer Renaissance der guten Software-Entwicklung führen", meint er. "In der Schule liegt die Lebensdauer eines Schreibtisches bei 25 Jahren, die eines Lehrbuches bei zehn, ein Computer hält vielleicht drei durch. Welches dieser drei Lernmittel kostet am meisten, auch im Betrieb? Natürlich der PC." Und der werde als Erstes weggeworfen, weil er veraltet sei. "Bücher kann man wenigstens noch verbrennen, um zu heizen." Wozniak kann sich deshalb eine Zukunft vorstellen, in der sich die Technologie so verlangsamt, dass sich Schüler wirklich intensiv mit Computern beschäftigen müssten.

"Für eine Textverarbeitung wie Word brauchen Sie die Parallelisierung natürlich nicht", kontert Professor Walter Tichy aus Karlsruhe. "Aber wir haben zum Beispiel ein Straßennavigationssystem mit der kompletten Karte von Europa und den USA parallelisiert und so erheblich beschleunigt." Kompressionsalgorithmen für die schnelle Datenübertragung, Virenscanner, Spracherkennung und Gestensteuerung – der Parallelisierungs-Spezialist sieht eine Fülle von praktischen Anwendungen für sein Forschungsgebiet: "Zurzeit ist es so, dass der Parallelrechner den Sprung von der Nische zur breiten Nutzung geschafft hat", meint Tichy. "Und da läuft der Wettbewerb. In dem sind wir nicht hinter den Amerikanern oder den Chinesen – aber jetzt kommt es darauf an, ob uns was einfällt. Der Punkt ist, dass man jetzt damit anfangen muss, anstatt auf die Vorgaben aus den USA zu warten." (bsc)