2in1: Pentium 4 Hyper-Threading Benchmarks

Standard-Benchmarks mit Zusatzlast

tecCHANNEL geht bei künftigen Messungen von Hyper-Threading-CPUs zusätzlich einen anderen Weg: Gemeinsam mit den bisher verwendeten Tests läuft dabei eine Hintergrundlast, die unabhängig vom System ein konstantes Datenaufkommen abarbeitet und damit eine konstante Rechenleistung belegt.

Als Last kommt ein eigens programmierter MP3-Encoder zum Einsatz, der im Kern auf der Lame-Engine Version 3.92 basiert. Aus höherer Warte betrachtet gleichen der Datenfluss und der Funktionsablauf dieser Kodierung anderen Multimedia-Kodierungen wie der Video-Kompression oder Streaming-Media-Formaten. Die Last repräsentiert somit auch Anwendungsfälle wie eine Video-Konferenz oder IP-Telefonie im Hintergrund.

Das tecCHANNEL-Lastprogramm konvertiert eine Audio-WAV-Datei in ein 128-kbit/s-MP3-File. Im Gegensatz zu normalen MP3-Encodern lässt sich unsere Last aber auf einen konstanten Datendurchsatz einstellen. So ist es möglich, auf allen Testplattformen - unabhängig von der absoluten Leistungsfähigkeit des Prozessors -parallel zu den Tests den Encoder mit einem Durchsatz von beispielsweise 1000 KByte/s im Hintergrund laufen zu lassen. Dadurch wird erreicht, dass alle Testkandidaten die gleichen Multitasking-Randbedingungen vorfinden.

Programmtechnisch erfolgt die Durchsatzsteuerung über die Prozesspriorität der Last. Der Windows-Scheduler verteilt die zur Verfügung stehende Rechenzeit anhand dieser Priorität. Über einen Systemaufruf kann jede Anwendung dem Scheduler seine "Wichtigkeit" mitteilen und die eigene Priorität ändern. Dies ist übrigens auch im Taskmanager durch einen Rechtsklick auf den Prozess manuell möglich.

Die Last überprüft ständig, ob sie ihr Soll erfüllt. Liegt sie hinter dem Plan, erhöht sie ihre Priorität und bekommt vom Windows-Scheduler mehr von der CPU-Zeit zur Verfügung gestellt. Liegt sie vor dem Sollwert, reduziert sie die Priorität entsprechend und lässt mehr Rechenleistung für andere Anwendungen übrig. Unser Lastprogramm ist nicht Thread-basiert und nutzt auch keine speziellen Techniken, die Hyper-Threading bevorzugen.