Hyper-Threading-Benchmarks

Nach den Serverprozessoren wird demnächst auch der Pentium 4 Hyper-Threading beherrschen. Doch zwei logische CPUs in einem Prozessor machen zwar vieles schneller, verursachen aber auch ganz neue Probleme.

Trotz Optimierungen wie Out-of-Order-Execution und Sprungvorhersage gerät die 20-stufige Pipeline von Intels Pentium 4 immer wieder ins Stocken. Sie muss beispielsweise auf Daten aus dem Speicher, noch nicht vollendete Rechenergebnisse oder den Ausgang einer Fallunterscheidung warten. Bislang waren die Transistoren einzelner Pipeline-Stufen deshalb rund 35 Prozent der Zeit zum Warten verurteilt.

Die von Intel Hyper-Threading (HT) getaufte Aufteilung der CPU in zwei logische Prozessoren soll diese brachliegende Rechenpower nutzbar machen. Im Normalfall bearbeitet die CPU dabei zwei Aufgaben (Threads) in zwei virtuellen CPUs gleichzeitig. Gerät die Pipeline eines Threads ins Stocken, wird in der Wartezeit intensiver am zweiten gearbeitet. Insgesamt ist die physikalische CPU dadurch besser ausgelastet, die Rechenleistung steigt.

Doch in der Praxis ergeben sich aus diesem Ansatz zahlreiche Probleme. Abgesehen von niedrig priorisierten Nebenaufgaben, wie der Druckaufbereitung, nutzen die meisten Desktop-Anwendungen nur einen Haupt-Thread. Diese Programme werden durch Hyper-Threading keineswegs schneller. Wenn das Betriebssystem nicht optimal auf Hyper-Threading abgestimmt ist, steht ihnen im Extremfall nur eine halbe CPU zur Verfügung. Doch selbst Multithreaded-Programme kann Hyper-Threading massiv ausbremsen.

Der folgende Artikel beschreibt einige Fallstricke, die vom Betriebssystem und vom Programmierer umschifft werden müssen. Neben zahlreichen Benchmark-Ergebnissen erläutern wir die Besonderheiten beim Testen von HT-Anwendungen. Die technischen Details zu Hyper-Threading und die CPU-Interna lesen Sie in unserem Artikel Hyper-Threading im Detail.