Das mag vllt Richtig sein, du vergisst aber dass 90% der Software für diesen Bereich am besten auf einem schnellen Dualcore läuft, das ist Fakt und das Beweist nicht nur Tomshardware immer wieder. Blender ist z.b. so ein Thema, auf meinem AMD läuft es schlechter als auf einem I3 Sandy 2120 und natürlich einem I5 2300.. Ergo ist Blender wiederrum nur Taktbasierend und maximal bei 2 Threads
Auf was willst du hinaus?
Was Tomshardware da ggf. misst, spielt doch keine Rolle. Es gibt Beispiele (um nix anderes gings ja), die auch mehrere Cores auslasten können. Auch im CAD bereich. Ebenso im 3D Bereich. Nicht umsonst werden zum Teil dort hochpreisige Dual/Multi CPU Maschinen zum Rendern vom Endergebnis rangezogen usw.
Du machst es dir da irgendwie zu einfach
Das kann man so sagen, denn Windows ist immernoch nicht Intelligent genug Dynamisch Threads zu verteilen. Wie sehr es mit Techniken wie CMT und SMT sich abmüht sieht man an Bulldozer. Grundsätzlich erwarte ich nicht dass Thread B abgearbeitet wird, wenn das Ergebnis aus A da ist, denn das kann auch ein 5Ghz schneller Singlecore. Ich erwarte, dass Datenbanken z.b. von einem Thread verwaltet werden, das Hauptprogramm eben auf 2 Threads und Berechnungen eben Parallel erfolgen, meinetwegen mit so etwas wie einem Ring, der wichtige Exklusive Daten gleich an den nächsten Thread weiterleitet. Das wäre dann wirkliches Multithreading
Und wenn du mal schaust, dann wirst du Sehen dass deine Prozesse zu 75% nur nach Auslastung verteilt werden, wie es grade passt, oder im schlimmsten Fall 4 threads einen Befehl bearbeiten. Multithreadded Software steckt noch nichtmal in den Kinderschuhen, und es ist Arm wie weinig Innovation dort kommt
Auch hier verstehst du die Lage scheinbar nicht ganz...
Das Beispiel sollte aufzeigen, das es nicht unbedingt das Problem vom OS ist, sondern viel eher vom Content abhängig.
Stell dir bildlich vor, du willst ne Tasse Kaffee trinken. Diese kannst du aber erst trinken, wenn du den Kaffee in eine Tasse gefüllt hast, was wiederum erst geht, wenn du die Tasse aus dem Schrank genommen hast und wenn du den Kaffee gekocht hast.
Zerhackst du diese vier Schritte nun und packst die in völlig verschiede Threads, so hast du schlicht Multithreaded programmiert.
Nur nutzt dir das alles absolut gar ncihts, denn du kannst den Kaffee nicht in die Tasse füllen wenn du die Tasse nicht hast und der Kaffee nicht gekocht wurde. Somit kann Thread 3 erst nach erfolgreichem Ablauf von Thread 1 und 2 getätigt werden. Und wiederum Thread 4 erst nach Thread 3. Es ergibt sich also trotz "sauberer" Programmierung eine sequenzielle Kette.
Wenn es nun vier Arbeiter gibt (also vier Personen respektive vier Cores), davon aber nur einer eine Tasse Kaffee trinken will, ergibt sich ziemlich exakt das selbe Bild, wie aktuell bei vieler Software. Nämlich die maue CPU Gesamtauslastung.
Es lässt sich schlicht nicht optimieren...
Dazu kommt, jeder der Arbeiter hat eine gewisse Geschwindigkeit. (also IPC sowie Takt) Die Abarbeitungsgeschwindigkeit der vier Arbeitsschritte ist somit zeitlich fixiert. Willst du nun die Arbeitsgeschwindigkeit steigern bleibt in dem einfachen Beispiel nur die Möglichkeit, zwei oder mehr Arbeiter gleichzeitig eben Kaffee trinken zu lassen. Was aber nur dann Sinn macht, wenn du den Kaffee an der Stelle auch benötigst.
Unterm Strich hat das also weder was mit SMT/CMT noch mit dem OS was am Hut, sondern hängt viel eher einfach am Optimierungsgrad, sprich wie weit fein lassen sich die Berechnungen aufdrieseln um an möglichst allen Stellen eben soviel wie möglich gleichzeitig berechnen zu lassen. Und vor allem an der "Art" der Berechnung. Also dem Content. Der Grundsätzlich auch eine gleichzeitige Abarbeitung ermöglichen muss...
Das würde ich ja gerne, nur ist mein i5-3570k zu langsam, oder die Software bzw. OS bekommt das nicht auf die Reihe. Die Ladezeiten werden, wenn ich nebenbei konvertiere, utopisch lang und das obwohl die Konvertierung nur 20% auf allen Kernen benötigt. Selbst wenn ich die Konvertierung auf 1 Kern beschränke und das Game damit auf den restlichen 3 läuft tut sich im Laden nicht merklich viel, da frage ich mich doch woran das liegt.
Das kann ich so nicht nachvollziehen. Ich fixiere beispielsweise bei mir die Threads von nem Rendertool schlicht auf die Mälfte der maximal Möglichen im Taskmanager und habe immernoch so ziemlich die selbe Performance in Games im Vordergrund. Ggf. kann man auch schlicht die "Priorität" auf unter Normal setzen...
Die HDD(s) spielen dazu noch ne Rolle, genau so wie der RAM, der natürlich auch in dem Fall mehr Speed sowie mehr Platz bieten muss. Zwei Sachen gleichzeitig teilen sich schlicht und ergreifend die Ressourcen. Und wenn irgendwas am Limit ist, geht der Speed in den Keller...