Simultane Rechenkünste - Die Geschichte des Multithreadings
PCGH Plus: Mehrere Kerne pro CPU sowie mehrere Threads pro Kern sind heute üblich. Aber wie hat sich diese Form der Parallelverarbeitung eigentlich im Laufe der Zeit entwickelt? Der Artikel stammt aus PCGH 05/2018.
Auf dieser Seite
Parallelität einfach gedacht: Intel kopierte für Smithfield (links) zwei Prescotts nebeneinander auf ein 90-nm-Silizium (Detail links außen), für Presler (vorn) nutzte man direkt zwei 65-nm-Cedar-Mill-Chips. Kentsfield (hinten) wiederholte das Verfahren mit zwei Conroe, was AMD als „unechte Quadcore“ beschimpfte. Heute verunglimpft Intel die AMD-Multi-Chip-Designs Epyc und Threadripper (rechts) als „zusammengeklebt“.
Heutzutage ist es eine Selbstverständlichkeit, an einem PC mehrere Dinge gleichzeitig zu machen. Wenn die Fähigkeit zur Bearbeitung mehrerer Aufgabenstellungen überhaupt noch Beachtung findet, dann nur, weil die Software nicht mehr hinterherkommt - um die Leistung moderner Desktop-CPUs mit bis zu 36 logischen Prozessorkernen zu entfesseln, muss jedem einzelnen eine Aufgabe ("Thread") zugewiesen werden. Insbesondere Spiele sind oft aber gar nicht in der Lage, so viele unabhängige, gleichwertige Threads zu generieren und werden dann für fehlende Mehrkernoptimierung gescholten.
Multitasking
Dem war nicht immer so. Vor zweieinhalb Jahrzehnten unterstützte das meist verbreitete Desktop-Betriebssystem MS-DOS nicht einmal die unabhängige Ausführung von zwei Anwendungen. Erst Windows 95 brachte die Fähigkeit zum sogenannten präemtiven Multitasking mit und konnte aus Perspektive des Nutzers mehrere Programme gleichzeitig laufen lassen - durch Trickserei. Auf Hardware-Ebene galt nämlich nach den Mitt-90er-Jahren noch lange: ein Prozessor, ein Kern, ein Thread. Die Microsoft-Desktop-Betriebssysteme bis einschließlich Windows Millennium täuschten ihre Fähigkeiten zur Parallelverarbeitung nur vor und schalteten schnell zwischen zwei Anwendungen hin und her. Tatsächlich wurde aber zu jedem Zeitpunkt nur eine Aufgabe berechnet. Offiziell änderte sich dies auf Software-Ebene erst mit Windows XP, ambitionierte Heimanwender stiegen aber schon vorher auf die Server-/Workstation-Umgebung von Windows 2000 um, die neben zahlreichen anderen Vorzügen auch die Unterstützung für mehr als einen Prozessor aus der ehemals rein professionellen Windows-NT-Produktlinie übernahm.
Multi-CPU
Quelle: Cray Research.Inc
Als erster Multi-CPU-Computer gilt der Cray X-MP, dessen bis zu vier Prozessoren jeweils aus einem ganzen Schrank voll verdrahteter Chips bestanden.
Bei Servern und High-End-Workstations waren mehrere physische Prozessorkerne schon lange verfügbar, Supercomputer hatten die Kraft der multiplen Herzen sogar schon kurz nach dem Erscheinen des ersten IBM-PCs für sich entdeckt. Von heutigen Integrationsdichten waren solche Systeme aber weit entfernt, bis zum Erscheinen von IBMs Dual-Core-Power4 im Jahre 2001 entsprach ein Prozessorkern immer auch (mindestens) einem einzelnen physischen Chip mit eigenem Package. Zur Jahrtausendwende begannen Enthusiasten dennoch mit Mehrkern-PCs in Form von Dual-CPU-Systemen zu experimentieren. Was heute aufgrund enormer Preisaufschläge kaum bezahlbar wäre, kostete damals "nur" knapp das Doppelte eines Single-Core-Systems, denn es gab noch keine Trennung zwischen Workstation- und Desktop-Markt. Alle Pentium-II- und einige -III-Modelle für Heimnutzer - mit dem richtigen Mainboard sogar günstige Celerons - waren prinzipiell Dual-CPU-fähig. Zudem ließ sich der damals übliche Front-Side-Bus von mehreren CPUs gleichzeitig nutzen, sodass auf Dual-Mainboards nur die Prozessorfassung und die Stromversorgung doppelt ausgeführt werden mussten. Aus Spielersicht blieb aber ein großes Problem: Da weder die Plattformen noch das Betriebssystem offiziell für Heimanwender vermarktet wurden, gab es quasi keine Endverbraucher-Software, die mehr als einen Thread nutzte. Die doppelte Prozessorleistung konnte also ausschließlich für mehrere gleichzeitig laufende Programme genutzt werden.
Hyperthreading
Ein Abit BP6 mit zwei Celeron 466 für 700 Mark drehte zur Jahrtausendwende Kreise um die schnellsten Single-CPUs – dafür müsste man heute 7.000 Euro investieren.
Daran sollte sich in den nächsten Jahren nur wenig ändern. Auch nach der Verbreitung von Windows XP und dem ersten Server-Anlauf AMDs mit dem Athlon MP blieben Single-CPU-Single-Thread-PCs der Standard, für den Spiele entwickelt wurden. Der Weg in die Zukunft öffnete sich erst Ende 2002 einen Spalt breit mit dem Pentium 4 3,06 "HT", ein Quartal später gefolgt vom restlichen Pentium-4-Portfolio in Form der Northwood-C-Generation. Hinter dem Namensanhängsel und Marketing-Schlagwort "Hyperthreading" verbarg Intel eine weitere Technik aus dem Server-Bereich, mit der besonders IBM und DEC Erfolge gefeiert hatten. Simultaneous Multithreading (SMT) vervielfacht nur
einen Teil der Verwaltungseinheiten eines Prozessorkerns und erweitert die anderen so, dass sie mehrere Threads gleichzeitig handhaben können. Im Falle der Pentium 4 HT präsentierte der Prozessor so gegenüber dem Betriebssystem zwei logische Prozessorkerne und konnte ebenso viele Threads gleichzeitig annehmen und bearbeiten.
Jetzt für 0,69 € kaufen
oder Werbefreiheit und Zugriff auf alle PLUS-Artikel (Monatsabo)
Für 4,80 EUR PLUS-Abo abschließen Bitte loggen Sie sich in Ihren PCGH-Community-Account ein, um diesen Artikel kaufen zu können. Alle Angebote für PLUS (Monatsabo, Jahresabo, Upgrades für Werbefrei) finden Sie auf unserer Supporter-Seite
Das erwartet Sie im Artikel auf über 20.000 Zeichen:
- Geschichte des Multi-Threadings von 1995 bis 2018
- Krieg der physischen Kerne
- Multithreading-Konzepte von AMD und Intel
Als PCGH-Digital-Abonnent erhalten Sie kostenfrei Zugriff auf alle PLUS-Artikel.
