Es gibt ja viele Limits.
Die CPU, die kann zu langsam sein und/oder zu wenig Rechenwerke besitzen,
die Geschwindigkeit des Arbeitsspeichers, die Geschwindigkeit von Laufwerken, die Geschwindigkeit von Grafikkarten usw.,
inkl. ihrer jeweiligen Anbindung untereinander.
Dann kann auch Software limitieren.
Wie gut lassen sich zu erledigende Aufgaben parallelisieren?
Passt die Kombination aus Registern, Pipelines, Cachestufen usw. oder kommt die Software, der betriebssystemseitige Task Scheduler
an Grenzen? Wo liegen wann welche Daten vor, liegen die in einem gemeinsamen Cache, müssen die CPU-intern erst neu verteilt werden uvm.
Mit welcher Geschwindigkeit kann man welche Datenmenge an andere Komponenten übergeben, z.B. der Grafikkarte, dem Arbeitsspeicher usw.?
Irgendwo ist immer ein Flaschenhals.
Idealerweise sind alle Komponenten so ausgewählt das in den benötigten Anwendungsszenaren möglichst alles möglichst lange möglichst voll ausgelastet ist, ohne überlastet zu werden. Dann ziehe ich aus der vorhandenen Hardware die größtmögliche Leistung.
In der Realität ist es aber oft so das ein Teil erst auf die Arbeit eines anderen Teils warten muss.
Windows heißt übersetzt "Weißer Mann warten auf Sanduhr". Das war früher schon so und ist es heute immer noch.
Das Betriebssystem muss Aufgaben möglichst effizient auf die in der CPU verfügbaren Resourcen aufteilen und gleichzeitig muss die Software, die ausgeführt wird so ausgelegt sein das mehrere parallele Ausführungspfade überhaupt ermöglicht werden.
Habe ich eine Software, die so programmiert ist das sie nur auf einem einzelnen Rechenkern laufen kann, nützt mir alles Verteilen nichts mehr. Weil es dann nichts zu verteilen gibt.
Und wenn ich dann mehrere Programm gleichzeitig laufen habe, will jeder zur selben Zeit was vom Kuchen abbekommen.
latiose88 schrieb:
Ah einer gewissen Menge an kernen und Takt ,bremst dann die Software das ganze aus.
Nein. Ehr nicht.
Beispielsweise Windows 11 Pro unterstützt bis zu 128 physische Prozessorkerne und maximal zwei physische Prozessoren gleichzeitig.
Wenn wir noch Hyper-Threading/Simultaneous Multithreading dazu nehmen, wären wir bei maximal 256 Threads.
Man könnte also ein Dual-CPU System mit zwei 64-Kern CPUs inkl. Hyper-Threading/Simultaneous Multithreading nutzen.
Dazu kommen noch maximal 2TB Arbeitsspeicher.
Du könntest z.B. einen Rechner bauen mit zwei AMD Epyc 9575F https://geizhals.de/amd-epyc-9575f-100-000001554-a3332562.html auf z.B. einem
Gigabyte MZ73-LM2 https://geizhals.de/gigabyte-mz73-lm2-9mz73lm2mr-000-3-a3552120.html und dazu noch 24 mal Arbeitsspeicher wie z.B.
Kingston KSM64R52BD4-64MD https://geizhals.de/kingston-server-premier-rdimm-64gb-ksm64r52bd4-64md-a3452640.html
und da drauf ein ganz ordinäres Windows 11 Pro installieren und nutzen...
Das "bisschen" Hardware das du im Rechner hast, ringt dem Betriebssystem nichtmal ein müdes Lächeln ab...