Seite 1 von 1
Threads gleich Kerne?
Verfasst: 09.11.2013 13:23
von Ameisen23
Jemand schrob dass auf seiner Maschine hardwaremäßig 8 Threads gleichzeitig ausgeführt werden können...
NicTheQuick hat geschrieben:Threads sind erlaubt. Übrigens kann ich auf meiner Maschine hardwaremäßig 8 Threads gleichzeitig ausführen.
Ist das wirklich so? Ich dachte man kann unbegrenzt Threads erstellen oder hat es mit CPU Kerne zu tun und man kann nur so viele Threads erstellen
so viel der Prozessor an Kernen hat? Threads == Kerne oder Threads != Kerne?
Re: Threads gleich Kerne?
Verfasst: 09.11.2013 13:46
von ts-soft
Du kannst "unbegrenzt" Threads erstellen, diese werden, meist vom Betriebssystem, auf die Kerne verteilt.
Je mehr Kerne, desto weniger Threads pro Kern = bessere Performance.
Gruß
Thomas
Re: Threads gleich Kerne?
Verfasst: 09.11.2013 15:58
von NicTheQuick
Wirklich gleichzeitig laufen eben immer nur so viele wie der Prozessor eben unterstützt. Aber erstellen kann man natürlich fast beliebig viele. Der Scheduler vom Betriebssystem entscheidet dann, wann welcher Thread die CPU benutzen darf. Auf meinem System laufen z.B. gerade 497 Threads "gleichzeitig". Unter Windows kann man die Threadanzahl auch im Taskmanager sehen.
Wenn man wirklich einen Algorithmus entwickelt, der sich parallelisieren lässt, dann macht es natürlich Sinn, genau so viele Threads gleichzeitig laufen zu lassen wie die Hardware auch hergibt. Wenn man mehr benutzt als möglich sind, muss das Betriebssystem eben zwischen den Threads umschalten und das macht es dann theoretisch auch wieder langsamer. Wirklich merken tut man das aber auch erst, wenn es wirklich viel mehr sind als hardwaremäßig vorhanden sind.
Man kann auch Programme schreiben, die die Grafikkarte zum Rechnen nutzen. Mit der CUDA-Schnittstellen von Nvidia kann man auf deren Grafikkarten so viele Kerne gleichzeitig nutzen wie die Karte eben hat. Bei den neusten Modellen sind das mehr als 2500 Kerne pro Grafikkarte.