Warum kann ein Kern 2 Threads, aber mittlerweile nicht 4 oder mehr?

3 Antworten

Weil die kerne keine 3 Sekundärprozessoren haben können sich nicht 4 (ein haupt + 3 sekundär) Sachen absolut gleichzeitig machen.

Das ist aber relativ irrelvant da es um Milisekunden geht wo die Threads sich gegenseitig abwechseln.

Gibt es, z.B. IBM hat spezielle Server-Prozessoren, die 4 oder mehr Threads pro Kern haben.

Es kommt sehr darauf an, ob sich das lohnt. Ein Kern mit 2 Threads ist nicht automatisch schneller als einer mit einem Thread, entsprechend ist ein Kern mit 4 Threads auch nicht automatisch schneller als einer mit 2 Threads. Unter Umständen können Kerne mit Simultaneous Multithreading (SMT) sogar langsamer sein als Kerne ohne.

Der Vorteil von SMT ist, dass der Prozessorkern z.B. in der Zeit, in dem er auf das Laden von Daten wartet, zwischenzeitlich die Berechnungen für einen anderen Thread ausführen, statt stillzustehen. Der Kern bekommt also dadurch nicht mehr Rechenleistung - es wird lediglich die vorhandene Rechenleistung effizienter ausgenutzt und weniger verschwendet.

Bei Consumer-Prozessoren hat sich gezeigt, dass schon 2 Threads ausreichen, um den Prozessor effizient zu nutzen.

Damit sich 4 oder mehr Threads lohnen würden, müsste die Software entsprechend optimiert und parallelisiert werden, was aber bei den meisten Programmen nicht der Fall ist.

Deshalb gibt es eben nur einige wenige Spezial-Prozessoren, wie die von IBM, die dann mit spezieller Software, die 4-Thread-SMT dann auch effektiv ausnutzen kann, betrieben werden.

Ist die Software eben nicht dafür ausgelegt, kann es wie zuvor beschrieben dazu kommen, dass ein Prozessor mit SMT schlechter abschneidet als einer ohne. Denn bei nicht-parallelisierten Programmen kommt es nur auf die rohe Rechenleistung eines einzelnen Kerns an, und das Programm läuft in diesem Fall besser, wenn der Prozessorkern nicht noch "nebenher" andere Dinge bearbeiten muss.

Woher ich das weiß:Hobby – Up-to-date dank PCGH-Abo und vielen anderen Quellen

Im Nichtserver-Umfeld haben sich 2 Threads/Kern aus Gründen der Hauptspeicher- und Cacheeffizienz bewährt. Bei Servern mag das anders aussehen (z.B. IBM Power8 mit 8 Threads/Kern).

Woher ich das weiß:Studium / Ausbildung – Masterstudium Elektrotechnik - Schwerpunkt Embedded Systems