Seite 2 von 2

Re: Mehrere Threads vs. mehrere Kerne

Verfasst: 12.03.2017 23:20
von ts-soft
Oder werden Linked List automatisch geschützt?
Nein, sind immer mit Mutex (oder ähnlichem) abzusichern! Unter Windows ist ein Mutex kein Mutex sondern eine Critical Section,
naja, entnimmt man nicht der Hilfe sondern muß in den Foren immer alles mitlesen /:->
Quelle: http://purebasic.fr/english/viewtopic.p ... c9#p496495

Re: Mehrere Threads vs. mehrere Kerne

Verfasst: 13.03.2017 11:00
von NicTheQuick
Threads werden ständig zwischen verschiedenen Prozessorkernen hin und her geschoben. Eben um die Hitzeentwicklung auf dem CPU-Die gleichmäßiger zu verteilen. Wäre ja blöd, wenn dir deine CPU platzt, weil ein Viertel davon überhitzt und die anderen drei Viertel im Vergleich dazu kühl sind.
Zu erklären wie ein einfacher Taskscheduler funktioniert, ist schon kompliziert genug. Das lernt man unter anderem in Systemarchitektur an der Uni. Tatsächlich steckt dahinter natürlich noch viel mehr bei heutigen Betriebssystem. Aber ein schönes Beispiel wäre noch der neue AMD Ryzen, der im Singlethread-Modus praktisch langsamer ist als ein vergleichbarer i7. Das liegt daran, Ryzen aus zwei CPU-Kern-Clustern besteht. Da Windows einen einzelnen Thread ständig auf alle Kerne verteilt, kommt es zu Mikropausen, wenn der Thread die Cluster wechselt. Das rührt daher, dass jeder Cluster einen eignen L3-Cache hat und Daten dann von einem zum anderen Cluster geschoben werden müssen, wenn der Thread dazwischen wechselt. AMD hat bei seiner Präsentation zu Ryzen natürlich etwas geschummelt und den SingleThread-Test so optimiert, dass er nicht zwischen den Clustern wechselt. Aber bevor man sowas selbst in die Hand nimmt, sollte man warten bis Microsoft da ein Update bringt, damit die Leistung bei sowas nicht einbricht.