Mehrkernprozessoren: die Kraft der vielen Herzen

ml, den 22. November 2006
Macnotes - Logo
Macnotes – Logo

Mehrkernprozessoren sind seit der Vorstellung des Power4 von IBM im Jahr 2001 ein Trend bei den Prozessorherstellern geworden. Nachdem Apple im letzten Jahr mit dem G5 den ersten Multikernprozessor in einem Mac verbaut hat, ist dieses Thema auch für Mac-Nutzer interessant geworden. Die gesamte aktuelle Modellpalette von Apple wird inzwischen von Zweikernprozessoren angetrieben. Grund für uns in einem kleinen Artikel die Vor- und Nachteile dieser Architektur einmal näher zu beleuchten und die Auswirkungen für Mac-OS-X-Benutzer zu skizzieren.

Immer schneller, immer heißer

In der Vergangenheit wurden Zuwächse der Rechengeschwindigkeit von Prozessoren durch Taktfrequenz-Erhöhungen erreicht. Für einen Softwareentwickler bedeutet dies, er kann einfach auf die nächste Prozessor-Version warten und weiß, dass seine Applikation darauf schneller laufen wird.

Doch der Spielraum für Takterhöhungen ist begrenzt. Sie werden durch Strukturverkleinerungen der Transistoren erreicht. Dadurch steigt der Strombedarf und dies bedeutet mehr Abwärme, die aus dem Rechner abgeführt werden muss. Schlimmer noch ist, dass mit steigender Taktfrequenz der Strombedarf nicht linear sondern exponentiell steigt.

20 Prozent mehr Taktfrequenz ermöglichen etwa 13 Prozent Geschwindigkeitszuwachs für Anwendungsprogramme. Allerdings steigt im selben Moment der Stromverbrauch des Prozessors um 73 Prozent an. Senkt man den Takt um 20 Prozent ab, dann verliert man etwa genauso viel an Geschwindigkeit, jedoch verbraucht der Prozessor 49 Prozent weniger Strom.

Mehr Kerne, mehr Leistung

Wenn man stattdessen zwei dieser heruntergetakteten Prozessorkerne zusammen nimmt, bekommt man etwa 75 Prozent mehr Geschwindigkeit bei 2 Prozent mehr Stromverbrauch. Das Zweikern-Prozessoren erst der Anfang dieser Entwicklung sind, bewies der Hersteller Intel Anfang November mit der Vorstellung von Vierkern-Prozessoren.

Nun stellt sich natürlich die Frage, wie man diese zusätzliche Leistung nutzen kann. Diese Frage ist insbesondere für Anwendungsentwickler interessant, denn prinzipiell können sie aus drei Optionen wählen: a) Nichts tun, b) die Benutzung von „Threads“ und c) neue Bibliotheken benutzen.

Nichts tun

Wie kann ein Entwickler nichts tun? Nun, er kann diese Option wählen, wenn z. B. das Betriebssystem ihm die harte Arbeit bereits abgenommen hat. In Mac OS X laufen z. B. zahlreiche Hintergrundprozesse auf dem zweiten Prozessorkern, während der erste Kern vollständig einer Applikation zur Verfügung steht. Zusätzlich kann das Programm Bibliotheken benutzen, die vom Betriebssystemanbieter Multiprozessor- bzw. Multicorefähig gemacht wurden.

Benutzung von Threads

Eine weitere Möglichkeit besteht in der Benutzung von „Threads“. Das braucht viel Fingerspitzengefühl und Erfahrung des Programmierers, denn Threading ist eine Kunst für sich. Datenzugriffe müssen zwischen unterschiedlichen Threads synchronisiert werden und zu viele Threads sind ineffizient bzw. zu wenig Threads bedeuten eine Verschwendung von Ressourcen.

Benutzung neuer APIs

Die dritte Möglichkeit die Leistung von Mehrkernprozessoren zu nutzen, besteht in der Zerteilung von Aufgaben in kleine Abschnitte, die parallel ausgeführt werden können. Diese Arbeitsabschnitte werden in eine Schlange eingereiht und abgearbeitet.

Für diesen Zweck wird Apple für Mac OS X 10.5 eine neue Programmierschnittstelle einführen, die genau das ermöglicht. Sie arbeitet nach dem „divide and conquer“-Prinzip. Große Aufgaben werden in mehrere kleine Teile zerlegt und der Programmierer gibt dem Betriebssystem einen Hinweis, welche Teile parallel ausgeführt werden können.

Grenzen der Technologie

Prinzipiell lässt sich die Zahl der Kerne in einem Prozessor weiter steigern, doch stellt sich die Frage, wie viel Kerne sinnvoll sind. Die Auswahl an Programmen, die effektiv zwei Prozessoren oder Kerne benutzen und auslasten können, ist immer noch überschaubar. Die Liste wird kürzer, wenn man die Unterstützung für 4 Recheneinheiten sucht und Programme die 8 Kerne beschäftigen, gibt es so gut wie gar nicht. Ein Grund dafür ist, dass sich nicht alle Aufgaben beliebig weit parallelisieren lassen. Außerdem ist der Geschwindigkeitszuwachs beim Hinzufügen einer weiteren Recheneinheit nicht linear, sondern flacht zunehmend ab. Das liegt größtenteils am steigenden Verwaltungsaufwand, der mit der Verteilung der Rechenaufgaben auf die einzelnen Prozessoren anfällt.

Findige Bastler bei Zdnet haben einen Mac Pro mit zwei Vierkern-Prozessoren Intels ausgestattet. Trotz der Verdopplung der Prozessorkerne von vier auf acht, konnten sie in ihren Benchmarks nur einen Leistungsgewinn von knapp 30 Prozent messen. Offensichtlich ist Mac OS X 10.4 noch nicht für die Verwendung von mehr als 4 Recheneinheiten ausgelegt.

Zukunft

Zumindest im Bereich der Prozessoren für Endanwender wird die Anzahl der Prozessorkerne nicht beliebig steigen. Dafür fehlen einfach die Anwendungen. Selbst Spiele, die sonst jedes Quäntchen Leistung eines Rechners fordern, setzen bisher kaum auf Multiprozessorfähigkeit. Wahrscheinlicher ist es, dass die Prozessorhersteller zukünftig andere Spezialprozessoren (z. B. Grafikprozessor) zusammen mit dem Hauptprozessor integrieren. Vor einigen Tagen präsentierte AMD das Projekt Fusion, welches genau das als Ziel hat.


Ähnliche Nachrichten