Die Problematik dahinter ist mir klar. Ich versuche nur, die Aussage
Zitat:
Doch leider geht das Gerücht um, dass auch der FS10 nicht von Dualcore profitieren wird.
|
zu interpretieren.
Die bekannten Fakten, die Du ja auch so schön erklärt hast, sind ja:
* Threads werden vom OS unterstützt und auf vorhandene CPUs aufgeteilt
* Wenn Threads kommunizieren müssen, dann kann es keine Leistungssteigerung um 100% geben, wenn man statt einer jetzt zwei CPUs hat. Nur bei voneinander komplett unabhängigen Threads würde man eine Verdoppelung der Rechengeschwindigkeit erhalten.
* Diese Kommunikation und Synchronisation von Threads hat auch bei Single-CPUs Einfluss auf die Rechengeschwindigkeit. Das muss in jedem Fall bei der Programmierung berücksichtigt werden, egal ob MultiCore, Multiprozessor oder Single-CPU.
Soweit, so gut. Jetzt starte ich den FS9 an und sehe im Taskmanager 17 Threads. Es sind also genügend Threads da, die das Betriebssystem auf die CPUs aufteilen kann, oder nicht?
Möglichkeit A: Die Threads des FS9 sind so dumm programmiert und müssen so häufig miteinander kommunizieren und aufeinander warten, dass keine Leistungssteigerung bei MultiCores zu erwarten ist.
Möglichkeit B: Die Threads sind gut programmiert und können gut auf MultiCores aufgeteilt werden. Es gibt daher eine gute Leistungssteigerung von typischerweise 140%-170%.
Wenn ich jetzt versuche, die Aussage von ganz oben zu interpretieren, dann passt nur Möglichkeit A dazu. Dann weiß ich aber noch immer nicht, warum ich
extra für MultiCores programmieren müsste. Ich muss ja schon bei Single-CPUs auf die Qualität meiner Threads achten, damit dort nicht zuviel Rechenleistung durch unnötige Kommunikation verbraten wird.