DualCore Frage: CPU-Auslastung nicht klar?

zappels

Lieutenant
Registriert
Dez. 2004
Beiträge
696
Hallo Leute...
ich habe mal ein Frage... ich lasse Super Pi Mod laufen mit meiner 4200+ CPU. Da bekomme ich ein ordentliches Ergebnis. Jetzt schaue ich mir mal die Lastverteilung auf den CPU´s an und stelle fest das ein Kern nie voll ausgelastet wird. Einer ca.60-80% der andere 20-40% zusammen aber immer nur 50%!
Wenn ich jetzt den Prozess auf ein CPU lege bekomme ich das gleiche Ergebnis bei der ein Kern zu 100% ausgelastet wird.

WIESO?

Wenn Super PI nicht von DualCore profitiert und es nur ein Prozess ist, warum weist das OS mit beiden Kernen nur 50% je Kern zu? Ich weiß das es noch an DualCore optimierungen feht. Ja klar aber wenn es bei zwei Kernen nicht voll anspricht warum dann halb? Kapiere ich nicht.

Vielleicht kann mir das einer Erklären.
Ist ja nicht nur bei Super PI so... auch bei anderen Programmen die über nur einen Prozess verfügen.

mal sehen was geht;-)
 
AW: DualCore Frage.... CPU Auslastung nicht klar?

Hi,
Weil für einmal SuperPI ein Core zu 100% ausgelastet ausreicht.

Laß Super PI zweimal laufen, dann werden auch beide Core`s
zu 100% ausgelastet. Also Super PI in einen anderesnamigen Ordner
rein und beide SuperPI`S laufen lassen.


mfg.
 
AW: DualCore Frage.... CPU Auslastung nicht klar?

Dass bei nich multithreading-fähigen Anwendungen beide Cores zu 50% ausgelastet werden, liegt daran, dass der Prozess ständig zwischen den Cores hin- und herspringt. Das kann man natürlich verhindern, indem man den Prozess nur einem Kern zuweist, der dann zu 100% ausgelastet wird...
 
AW: DualCore Frage.... CPU Auslastung nicht klar?

hmm aber wieso springt der Prozess hin und her? Ist das immer so? Auch bei Spielen? Was bringt denn der DualCore Patch von Windows? Was macht der eigentlich? Ich habe den schon mal drauf gehabt und da hatte ich ohne Ende Timingproblem mit CoD2! Musste ohne Ende nachhalten und nachdem ich ihn deaktiviert hatte lief alles....
 
Ich nehme mal an, dass Windows versucht, Prozesse immer dem weniger stark ausgelasteten Core zuzuweisen, daher das hinundherspringen.
Der DualCorePatch behebt dabei ein Problem, dass der Corewechsel nicht richtig vollzogen wird und der Core, auf den gewechselt wird, nicht aus dem C'n'Q-Zustand aufwacht und daher natürlich nicht die volle Leistung bringt (oder zumindest so ähnlich, guggst du hier: http://support.microsoft.com/?id=896256)
 
wieso springt der Prozess hin und her?
meißt liegt das nicht an windows selber sonder an der cpu selbst, warum der wechsel. das liegt häufig an der pipeline wenn die branchprediction falsch lag und die pipeline gelöscht werden muß kann es schneller sein wenn einfach der core gewechselt wird.
noch ein kurzes wort zur pipeline (IF,ID,EXE,MEM,WB) also meißt fünfstufig, kommt nun ein branch-befehl versuch der processor mittels einer branchprediction ein vorhersage zu treffen. ist diese falsch oder gibt der branch target buffer (oder der call return stack) eine falsche zieladresse an, muß die ALU quasi angehalten werden die pipeline gelöscht werden und dann wieder an dem branchbefehl neu gestartet werden. das kostet zeit und deshalb wechselt man unter umständen einfach den core
 
also ist der patch von microsoft nur in verbindung von cool´n quiet zu gebrauchen? hmm wieso hatte ich dann trotzdem timing probs bei cod 2? habe meine cpu auf 2,6GHz clocked und benutze kein cool´n quiet. trotzdem hat dieser patch etwas bewirkt. nachdem ich ihn wieder deaktiviert hatte lief es wieder.
im umkehrschluß ist die cpu mit einen core genauso schnell wie mit zwei die laufend springen... müsste das nicht langsamer sein? hätte ich jetzt gedacht.
 
nein eine CPU mit zwei Cores mit nem springenden Process ist schneller als ein CPU mit nur einem Core. Das oben Beschriebene "Problem" gibt es bei allen superskalaren CPUs, man hat aber mit mehreren Cores die Möglichkeit die negativen Auswirkungen einer solchen Falschvorhersage noch besser zu minimieren als bei einem single Core.
 
stimmt... habs zwei mal getestet.... bei 4m macht das zwar nur 4 secunden aus, aber es ist klar erkennbar... hätte ich wirklich nicht gedacht.
 
So jetzt noch einmal ne Frage... bin wahrscheinlich zu doof es zu verstehen.... sorry dafür.... wenn ich jetzt Nero Recode starte. Erscheint im Reiter Prozesse nur ein Thread... nämlich Recode. Trotzdem nutzt der beide Cores zu 100% aus. Dachte man muss damit DualCore optimiert Helper Threads haben, oder es in mehrere Threads aufteilen???
Wie funktioniert denn das?
Gibts es da Unter Threads die nicht angezeigt werden? Würde mich mal Iinteressieren....
:freak:
 
@zappels
Erscheint im Reiter Prozesse nur ein Thread... nämlich Recode.
Wie du richtig festgestellt hast erscheint das im Reiter Prozesse. Ein Prozesse und ein Thread sind zwei grund verschiedene Dinge. Ein Prozess kann mehrere Threads haben. Die Aufteilung ist Üblicherweise so das ein Programm einen Prozess besitzt (also den selben reservierten Speicher besitzt und benutzt) und dann kann der Prozess (muß aber nicht) mehrere Threads haben, die genau auch auf diesen reservierten Speicher zugreifen.
 
also kann ich das nicht feststellen, ob ein programm dualcor optimiert ist oder nicht? dachte man könnte anhander der prozesse sowas feststellen... schade...

gibt es irgendein tool das alle threads zu einem prozess anzeigt? ist nicht überwichtig, aber hab halt etwas interesse an so etwas bekommen. allein durch den angeblich anti hyperthreading patch... ich nenne ihn jetzt mal so....
kann mir nämlich nicht vorstellen, dass es so etwas in hardware geben soll. sprich freischaltbar in einer AM2 CPU...

na ja

besten dank erstmal für die bis jetzt gegebenen antworten.
 
ja sehr geil... funzt einwandfrei... schon interessant welches programm wie viele threads besitzt...
noch mal Danke.
 
Zurück
Oben