2in1: Pentium 4 Hyper-Threading Benchmarks

Multithreading und Multitasking

Allerdings zeigt das Beispiel des Fließbandarbeiters auch die Schwäche des neuen Konzepts auf. Hyper-Threading bringt nur dann Vorteile, wenn auch Arbeit für die zweite Pipeline vorhanden ist. Dafür gibt es zwei Möglichkeiten: Eine multithreaded programmierte Anwendung oder Multitasking mit zwei unabhängigen Programmen.

Beim Multithreading teilt sich eine Anwendung in mehrere unabhängig voneinander laufende Programmpfade auf. So kann etwa eine Rendering-Software die Arbeit in zwei Threads aufteilen und jedem Thread einen anderen Bildteil zuordnen. Bei einem Multiprozessor-System oder einer Hyper-Threading-CPU könnte etwa die eine CPU die obere Bildhälfte berechnen und die andere unabhängig davon die untere. Im Server- und Workstation-Umfeld sind derartige Programme üblich, und Hyper-Threading kann seine Vorteile ausspielen.

Doch bei Desktop-PCs waren Multiprozessor-Systeme bislang unüblich. Daher existiert auch kaum ein Desktop-Programm, das Multithreading für den echten Arbeits-Thread nutzt. Üblich ist vielmehr, kleine Nebenaufgaben wie die Druckausgabe oder die Rechtschreibprüfung in eigene Hintergrund-Threads auszulagern. Doch da hierfür wenig Rechenleistung benötigt wird, sind diese Threads meist in einem Wartezustand. Hyper-Threading bringt bei einer derartigen Anwendung kaum Vorteile.

Beim Multitasking laufen mehrere Anwendungen parallel auf dem Rechner ab. Doch auch hier gibt es "echtes" und "falsches" Multitasking. Viele geöffnete Anwendungen, die im Hintergrund nur warten, sind im eigentlichen Sinne kein Multitasking. Sichtbar wird dies im Taskmanager von Windows, wenn man die Spalte "CPU-Zeit" einblendet. Mit ein paar Minuten CPU-Zeit pro Tag kann man etwa das oft zitierte E-Mail-Programm im Hintergrund nicht wirklich als Multitasking-Last bezeichnen. Doch nur wenn mehrere Programme gleichzeitig CPU-Leistung benötigen, bringt Hyper-Threading Vorteile beim Multitasking.