Core i5 Kern nie auf 100%

blue2script

Cadet 2nd Year
Registriert
Jan. 2008
Beiträge
25
Hallo zusammen,
ich nenne seit kurzem einen Laptop mit einem Core i5-540M mein eigen. Ich habe allerdings ein Problem mit Mathematica, Python und und anderen rechenintensiven Anwendungen: Sie reizen nie einen Prozessor ganz aus. Mein vorheriges 1-Kern-Notebook lief bei selben Berechnungen unter 100% Volllast (und ich konnte nur warten, bis er fertig ist).

Die Last liegt (auf beide Kerne gerechnet) immer so bei rund 33%. Also (wenn ich Hintergrundprozesse abrechne) nutzt der Rechner 25% und damit einen Hyperthread (von vieren). Kann mir das jemand erklären? Er soll gefälligst den ganzen Kern nutzen und gerne noch per Turbo-Boost übertakten...

Vielen Dank bereits!
Blue2script

BTW: In dem Laptop stecken auch noch 8Gb RAM und eine SSD - daran sollte es also nicht liegen...
 
guck doch mal was er bei der nutzung von Prime sagt..

womit liest du die auslastung aus?
 
vllt nutzen diese anwendungen nur einen core.
mach mal smt aus und guck mal ob du dann 50% hast, sofern du die eisntellung im bios hast
 
hast du schon einmal mit cpu-z geguckt, auf welcher Taktfrequenz der Prozessor bei diesen Programmen ist? Und allgemein ist es nicht schlimm, wenn ein Prozessor von einer Anwendung nicht ganz ausgelastet wird. ;)
 
Ehm vielleicht weil der Core i5 25 Mrd mal schneller als dein alter Single Core Lappi war??

Was einen P4 (ich sag jetzt einfach mal das diese CPU in deinem alten Lappi steckte), zu 100 % auslastet, muss doch keinen hochmodernen Core I5 genau so auslasten?!
 
ganz einfach. Die applikation nutzt nur einen Kern. Verteilt sich aber im Taskmanager immer auf mehrere Kerne... dh du wirst nie einen bei 100% sehen und andere bei 0. Esseiden du ordenst den Prozess nur diesem einen Kern zu. Kannste au im Taskmanager machen.
 
So viele Antworten so schnell. CPU-Z wird gleich ausprobiert, genauso wie PRIME. Nur kurz zu den Berechnungen: Das sind die (wissenschatliche) Simulationen für die der Rechner praktischerweise alle Ressourcen nutzen sollte, die er hat. Dauer reicht von wenigen Sekunden bis wenige Minuten. Rest teste ich gleich.

PS: @Krautmaster: Korrekt, die Programme nutzen nur einen Kern. Aber ich hab ja auch nur zwei Kerne, die Systembelastung sollte also hoch auf 50% gehen.
 
Wenn du aber dennoch einem Programm explizit Kerne zuweisen willst, damit die CPU vielleicht dann hochtaktet was sie vorher eventuell nicht tat: Mit EasyToolz Kerne dauerhaft zuweisen (CPU Affinity).
 
Mehr als 25% CPU-Auslastung wirst du mit einer Single-Threaded-Anwendung niemals rausbekommen (auf einem Quadcore [2 echte Kerne plus 2 virtuelle durch Hyperthreading], bei einem Dualcore wärens 50% und so weiter). Die kann eben nur einen Kern auslasten, weil es entweder der Programmierer nicht besser hinbekommen hat oder die Berechnungen sich nicht beliebig aufteilen lassen.

@blue2script: nein, du hast 4 "Kerne". Ist zwar ein Dualcore, aber dank Hyperthreading hast du ja noch 2 virtuelle. Macht insgesamt 4. Also 2 echte, 2 "falsche". Für Windows siehts halt aus als wären es vier. Und wenn dann nur ein Kern ausgelastet wird, sind das eben 25% Gesamtlast.
 
Krautmaster und AndrewPoison haben ja schon die Erklärung abgegeben.

Aber mal was anderes:
Wenn Windows die Last bei 2 Kernen + 2 virtuellen Kernen genau aufteilt, dann läuft das ganze aber niemals so schnell wie bei einem echten Kern, der auf 100% läuft, da die virtuellen Kerne ja nicht die Leistung eines echten haben.
Müsste doch eigentlich korrekt sein, oder?
 
Ok, SMT kann ich bei mir leider nicht abschalten. Aber einmal andersherum gefragt: Läuft ein einzelner Thread genauso schnell wie ein Kern, wenn der andere Thread auf demselben Kern nichts zu tun hat? In diesem Fall wären die 25% ein "Anzeigefehler", da der eine laufende Thread quasi die Hälfte der Rechenleistung klaut aber von Windows nur zu 1/4 gezählt wird. Ist das des Rätsels Lösung?

Thanks!
 
Zurück
Oben