Mehrkerntechnik beendet Taktrennen

04.06.2006
Von Holger Henning und Jan Heichler

Ungeachtet der konzeptionellen Unterschiede im Design stoßen die Architekturen beider Hersteller allerdings auf eine Problematik, die seit jeher Mehrprozessor-Architekturen begleitet: Die Software muss in der Lage sein, alle CPUs beschäftigen zu können. Um das Mehrkern-Design auszunutzen, muss eine einzelne Aufgabe in mehrere Teile (Threads) aufgebrochen, separat abgearbeitet und die Teilergebnisse müssen anschließend zusammengefügt werden. Die Beschleunigung hängt entscheidend davon ab, wie gut eine Anwendung dafür programmiert ist.

Parallelisieren lässt sich ein Programm aber nur dann, wenn sich die Abhängigkeiten zwischen Daten und Berechnungen entsprechend auflösen lassen. Eine mangelhafte Parallelisierung frisst durch aufwändige Abstimmungsprozesse den potenziellen Zeitgewinn sofort wieder auf. Hinzu kommt, dass der Einsatz von Mehrkern-Prozessoren ebenfalls nicht frei von Engpässen ist: Bei AMD greifen beispielsweise alle Kerne eines Sockels über einen einzigen Memory-Controller auf den Speicher zu. Intel hält dagegen an dem Konzept eines Front Side Bus fest, den sich die Kerne aller CPU-Sockel teilen.

Server profitieren sofort

Trotz dieser Schwierigkeit bie-ten Zweikern- beziehungsweise Mehrkern-Prozessoren im realen Anwenderleben durchaus Vorteile. Denn üblicherweise wird ein Server nicht für Höchstleistungsrechenaufgaben eingesetzt. Er ist primär auf Durchsatz ausgelegt und muss viele Aufgaben parallel bewältigen. Ein Server profitiert deshalb sofort von den neuen Prozessorarchitekturen, da hier in erster Linie das Multitasking der voneinander unabhängigen Aufgaben gefragt und weniger das Multithreading einzelner Anwendungen gefordert ist. Auch spielen die höheren Kosten für die Doppelkern-Prozessoren beim Gesamtpreis eines Servers kaum eine Rolle. Der Einsatz in Servern wird spätestens mit dem Aufkommen von Vierkern-CPUs den Sog in Richtung 64 Bit verstärken. Denn der Hauptvorteil, einen größeren Adressraum ansprechen zu können, kommt vor allem bei der parallelen Nutzung mehrerer Anwendungen zum Tragen.