PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur CPU Auslastung


Choco
2007-07-29, 20:02:17
Hallo zusammen.

Ich lasse gerade ein langes Dokument mit Adobe den Text erkennen.

Dabei geht die Rechnerleistung hoch.

Habe eine E6400 Core 2 Duo.

Warum habe ich laut Windows Task Manager bei jedem Kern ca. 50% Auslastung?

lumines
2007-07-29, 20:04:17
weil das prog für dual cores optimiert ist

C.D.B.
2007-07-29, 20:04:41
Liegt am Windows-Scheduler. Der Verteilt die CPU-Last immer so blöd. :mad:

Gast
2007-07-29, 20:08:42
Liegt am Windows-Scheduler. Der Verteilt die CPU-Last immer so blöd. :mad:

Was ist daran bitte blöd? Ich finds sogar ziemlich clever. Schonmal geschaut, wie die Temperaturen aussehen, wenn du einen Kern voll belastet und dann zwei nur teilweise?

T4ch0n4d3l
2007-07-29, 20:09:42
Weil der Scheduler von Windows den Acrobat Reader auf beide Kerne "dynamisch" verteilt, also entweder/oder. Dabei landet der Acrobat Reader mal auf dem einen, mal auf dem anderen Kern und eben statistisch gesehen gleichverteilt. Er wird quasi 50% der Zeit auf dem einen Kern ausgeführt und 50% der Zeit auf dem anderen Kern. Damit lastet er beide Kerne zu 50% aus. = Gutes Loadbalancing

Ursache ist, dass Windows natürlich im Millisekundentakt jeden (aktiven) Thread einmal auf eine Recheneinheit laufen lassen muss.

weil das prog für dual cores optimiert ist
Weil er eben nicht dualcore optimiert ist. Es stehen 200% CPU Zeit in der Summe zur Verfügung. Ein nicht parallelarbeitender Prozess kann aber nur maximal 100% CPU Zeit in Anspruch nehmen, da er zwingend streng sequenziell abgearbeitet werden muss (es kann nix gleichzeitig gemacht werden, sondern alles nacheinander). Und das eben auf beide Kerne verteilt.

C.D.B.
2007-07-29, 20:13:23
Leider ist diese Verteilungsmethode nicht das gelbe vom Ei. Erstens entsteht höherer Verwaltungsaufwand und zweitens könnte man einen nicht benötigten Kern ja abschalten. Letzteres ist zugegebenermaßen leider Hard- als auch Softwareseitig leider noch gar nicht implementiert ...

Senior Sanchez
2007-07-29, 20:51:44
Man kann bei Windows den zweiten Kern nicht deaktivieren? Das die CPUs das hardwareseitig noch nicht mitmachen ist klar, aber nichtmal mit Software geht das unter Windows?

T4ch0n4d3l
2007-07-29, 20:55:07
Als Bootoption sollte das gehn.

WEGA
2007-07-29, 21:15:30
Was ist daran bitte blöd? Ich finds sogar ziemlich clever. Schonmal geschaut, wie die Temperaturen aussehen, wenn du einen Kern voll belastet und dann zwei nur teilweise?
was interessiert mich die temp?

Gast
2007-07-29, 21:22:59
was interessiert mich die temp?

Was hat dich zu interessieren wie das Betriebssystem seine Arbeit verrichtet?

WEGA
2007-07-29, 22:24:48
Was hat dich zu interessieren wie das Betriebssystem seine Arbeit verrichtet?
wegen der performance?!

Senior Sanchez
2007-07-30, 09:38:14
Als Bootoption sollte das gehn.

Hm, ich habe noch nie Bootoptionen von nem Dual-Core Rechner gesehen, also kann ich dazu nix sagen.

Zumindest aber bei OS X kann ich im Betrieb den zweiten Kern "deaktivieren", sodass OS X keine Prozesse mehr auf diesen legt - der Sinn sei mal dahingestellt ;)

BlackBirdSR
2007-07-30, 11:03:02
Leider ist diese Verteilungsmethode nicht das gelbe vom Ei. Erstens entsteht höherer Verwaltungsaufwand und zweitens könnte man einen nicht benötigten Kern ja abschalten. Letzteres ist zugegebenermaßen leider Hard- als auch Softwareseitig leider noch gar nicht implementiert ...

Womit man alle Vorteile eines Dual-Core-Systems verlieren würden.
Die einzige Rettung wäre dann eine SMT-Fähige CPU.

Der höhere Verwaltungsaufwand wird doch durch die frei gewordene Rechenzeit für den Kernel wieder mehr als wett gemacht.

Coda
2007-07-30, 11:19:24
wegen der performance?!
Wenn ein OS abwechselnd alle 10ms eine Taskwechsel macht, muss eine 2Ghz-CPU nach 20.000.000 Taktzyklen die CPU wechseln, was wohl im Bereich von 1000 Takten braucht. Ganz furchtbar. Schrecklich.

BlackBirdSR
2007-07-30, 11:26:50
Wenn ein OS abwechselnd alle 10ms eine Taskwechsel macht, muss eine 2Ghz-CPU nach 20.000.000 Taktzyklen die CPU wechseln, was wohl im Bereich von 1000 Takten braucht. Ganz furchtbar. Schrecklich.

Den Test kann ja jeder ganz schnell machen.
Benchmark normal und einmal mit zugewiesenem Kern fahren. Der Unterschied ist gewaltig ;)
Ich bin so froh, dass mein Mauszeiger jetzt nicht mehr dieses Micro-Ruckeln hat, immer wenn der Maustreiber auf einen anderen Kern geschoben wird. ;D





So schlecht ist die Sache mit dem Wechsel nicht. Ein Prozess ist ja sowieso nicht unendlich an die CPU gebunden. Spätestens wenn seine zugewiesene Zeit abgelaufen ist, muss er einem anderen Prozess weichen. Erst dann darf er wieder ran. Das kostet auch Zeit, und niemand regt sich groß auf.
Natürlich hat der andere Kern den nicht den gleichen L2-Cache inhalt. Aber der ist erstens schnell wieder abgeglichen, und zweitens vielleicht sowieso durch einen anderen Prozess überschrieben. Prefetching sei dank ist das auch kein Beinbruch.

Daher: 2. Kern abschalten bei single-threaded software = ganz schlechte Idee.

Gast
2007-07-30, 11:29:22
Das ist jetzt aber nicht der Grund warum man sich nicht interessieren sollte wie das OS seine Arbeit verrichtet. Oder was hat WEGA gequotet?
Sonst würde es nie Servicepacks geben ;)

WEGA
2007-07-30, 14:21:42
Wenn ein OS abwechselnd alle 10ms eine Taskwechsel macht, muss eine 2Ghz-CPU nach 20.000.000 Taktzyklen die CPU wechseln, was wohl im Bereich von 1000 Takten braucht. Ganz furchtbar. Schrecklich.
ich habe ja nicht gesagt, dass es schlecht ist !!! ffs

C.D.B.
2007-07-30, 20:45:26
Hm, ich habe noch nie Bootoptionen von nem Dual-Core Rechner gesehen, also kann ich dazu nix sagen.

Einfach in die Boot.ini numproc=1 Eintragen. ;) Diese Methode ist aber nur zu Testzwecken zu gebrauchen ... Vor meinem geistigen Auge schwebt eine DYNAMISCHE Kernab/zuschaltung. Man stelle sich vor: Ein OS schaltet einen weiteren vorhanden Kern nur dann zu, wenn die Leistung tatsächlich gebraucht wird. DAS wäre Effizient! =)

Womit man alle Vorteile eines Dual-Core-Systems verlieren würden.
Die einzige Rettung wäre dann eine SMT-Fähige CPU.

Erstens wäre bei einem Idle-Nahen Betrieb (zum bsp. hier herumposten :D) der "Nachteil" zu verschmerzen. Zweitens ... wie war das doch mit Nehalem und SMT? ;)

Den Test kann ja jeder ganz schnell machen.
Benchmark normal und einmal mit zugewiesenem Kern fahren. Der Unterschied ist gewaltig ;)
Ich bin so froh, dass mein Mauszeiger jetzt nicht mehr dieses Micro-Ruckeln hat, immer wenn der Maustreiber auf einen anderen Kern geschoben wird. ;D

Daher: 2. Kern abschalten bei single-threaded software = ganz schlechte Idee.

Ja, dieses Sub-wahrnembare Ruckeln des Mauszeigers ist in der Tat aüßerst nervig. M$ müßte ja nur die Switch-Zeit ändern ... so auf 1ms?!? :uidea:

Gast
2007-07-30, 20:49:31
[QUOTE=BlackBirdSR;5710217Der Unterschied ist gewaltig ;)[/QUOTE]


ähm, ja der ist so gewaltig, dass er nichtmal messbar ist.