Intel Hyper-Threading: Windows XP und Windows 2000 im Vergleich
Vorwort
Vor über einem Jahr stellte Intel mit den neuen Xeon-Prozessoren auf Basis des in 0,13µm gefertigten Prestonia-Kerns eine Technologie vor, welche den Prozessor in die Lage versetzt, zwei Threads parallel zu verarbeiten. Hierbei sollte es sich natürlich nicht um den letzten Prozessor handeln, der mit der sogenannten Hyper-Threading-Technologie ausgerüstet ist. So wurde Hyper-Threading erstmalig und doch für viele überraschend beim 3,06 GHz Pentium 4 vor gut einem halben Jahr auch für Desktop-Computer aktiviert. Mittlerweile gibt es zusammen mit den neuen 800 MHz Frontside-Bus Pentium 4 Prozessoren insgesamt fünf CPUs mit aktivem Hyper-Threading (HT). Dies alleine reicht jedoch nicht aus, um HT nutzen zu können; auch das Betriebssystem muss diese Technologie beherrschen.
Da sich HT dem Betriebssystem gegenüber wie ein Dual-Prozessor-System offenbart, es bedarf auch nach einem Betriebssystem mit Dual-Prozessor-Support. Diesen Support bieten hierbei bekanntlich Windows 2000 Professional und Server, Windows XP Professional sowie Windows Server 2003 (ehemals Windows .NET) und natürlich ältere Windows NT basierende Betriebssysteme.
Laut Intel ist der Hyper-Threading-Support für die Desktop-Prozessoren allerdings nur in Windows XP Home Edition und Professional integriert. Die Nutzung von Windows 2000 Professional wird nicht empfohlen. Dies ist insofern verwunderlich, da die ersten Xeon Prozessoren von Intel mit Hyper-Threading eine ganze Weile mit Windows 2000 Server als Betriebssystem auskommen mussten. Schließlich wurde die neue, auf Windows XP basierende Serverversion, Windows Server 2003, erst im April dieses Jahres zum Verkauf freigegeben. Wenn Windows 2000 Server also lange Zeit mit HT-Prozessoren zusammenarbeiten durfte, warum sollte Windows 2000 Professional mit ihnen nicht zusammenarbeiten können? Bietet Windows 2000 gar die gleiche Performance mit HT wie Windows XP? Wir haben Windows 2000 Professional SP3 gegen Windows XP Professional SP1 auf einem System mit und ohne aktiviertem Hyper-Threading antreten lassen.
Grundlagen
Die Idee von Hyper-Threading kommt eigentlich aus dem Serverbereich, wo häufig Rechnersysteme mit mehr als nur einem Prozessor zum Einsatz kommen. Mit zwei Prozessoren ist es z.B. möglich, zwei Threads (Kleinster ausführbarer Teil eines Tasks) pro Taktzyklus zu verarbeiten, da jede CPU unabhängig mit Aufgaben beschäftigt werden kann. Wenn eine Anwendung vom Programmierer in mehrere Threads aufgeteilt wurde, lässt sich so die Geschwindigkeit deutlich steigern, wenn nicht sogar nahezu verdoppeln.
Die Hyper-Threading Technologie ist hierbei nichts anderes, als die Technik, die dieses simultane Multi-Threading in einem einzigen physikalischen Prozessor (mit Einschränkungen) ermöglicht. Dieser eine Prozessor spaltet sich somit in zwei logische Prozessoren auf, wobei sich die beiden logischen/virtuellen Prozessoren einen Teil der physischen Ausführungs-Ressourcen teilen. Ziel ist es, die vorhanden Ressourcen effektiver auszunutzen. Doch da spielt, wie bereits erwähnt, natürlich auch das Betriebssystem eine entscheidende Rolle. Laut Intel wird HT der Desktop-Prozessoren nur unter Windows XP (Home oder Professional) oder Linux ab Kernel-Version 2.4.18 unterstützt. Allerdings hat sich Microsoft bezüglich Hyper-Threading auch eigene Gedanken gemacht, und hat diese in einem Word-Dokument veröffentlicht.
Although Windows 2000 is compatible with Hyper-Threading Technology, we expect customers will get the best performance from Hyper-Threading Technology using Windows .NET Server. This is because the Windows .NET Server Family is engineered to take full advantage of the logical processors created by Hyper-Threading Technology.
Wer also das volle Potential von Hyper-Threading aus nutzen möchte, der braucht laut Microsoft den Windows XP basierenden Windows .NET Server, welcher inzwischen mit der Bezeichnung Windows Server 2003 im Handel erhältlich ist. Somit empfiehlt also auch Microsoft den Einsatz von Windows XP basierenden Produkten, wenn es um den Einsatz Intels neuer Technologie geht. Allerdings könnte man an dieser Stelle natürlich auch eine verkaufszahlenorientierte Intention implizieren. Doch es gibt in der Tat Unterschiede bei der Erkennung von Dual-Prozessor-System zwischen Windows 2000 und Windows XP.
Because Windows 2000 Server does not distinguish between physical and logical processors, Windows 2000 simply fills out the license limit using the first processors counted by the BIOS. […]
In contrast, Windows .NET Server distinguishes between logical and physical processors, regardless of the way they“re counted by the BIOS.
Windows XP ist also erstmalig in der Lage zwischen virtuellen und physischen Prozessoren zu unterscheiden. Deshalb ist es z.B. auch mit Windows XP Home Edition möglich, einen Prozessor mit HT-Support erfolgreich zu nutzen, wenngleich die Home Edition an für sich nur eine reale CPU unterstützt. Doch dies bedeutet natürlich noch lange nicht, dass es Leistungsunterschiede zwischen Windows 2000 und Windows XP beim Einsatz von HT gibt.