"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Programm für automatische Prozessor Affinity setzten?

SouLEateR 01.11.2009 - 12:14 3730 30
Posts

SouLEateR

0db is zu laut
Avatar
Registered: May 2003
Location: Vienna
Posts: 676
Hi,
ich such ein Programm, dass es mir möglich macht die CPU Affinity bei bestimmten Programmen automatisch zu setzten, wenn es gestartet wird. Ich hab keinen Bock, das immer manuell zu machen. Gibt's so etwas?

Chrissicom

Rise of the Ryzen
Avatar
Registered: Jul 2006
Location: Falkensee
Posts: 1942
Einfach einen Switch an die Programmverknüpfung hängen, z.B.

c:\windows\system32\cmd.exe /C start /affinity 1 notepad.exe

/affinity 1 heißt in dem Fall CPU 0. Der affinity Counter beginnt also bei 1, während der CPU Counter bei 0 beginnt.

Hornet331

See you Space Cowboy
Avatar
Registered: Sep 2003
Location: Austria/Korneubu..
Posts: 7680
http://home.arcor.de/jasonvoorhees2.../easytoolz.html

Funzt hald nur mit 32bit apps, dafür gehts auch automatisch und gibt auch die option, das es alle anderen progies von dem cpu wegräumt.

Chrissicom

Rise of the Ryzen
Avatar
Registered: Jul 2006
Location: Falkensee
Posts: 1942
Zitat von Hornet331
http://home.arcor.de/jasonvoorhees2.../easytoolz.html

Funzt hald nur mit 32bit apps, dafür gehts auch automatisch und gibt auch die option, das es alle anderen progies von dem cpu wegräumt.

Hab das eben mal getestet und mit Photoshop 64-bit unter Windows Server 2008 R2 (ohnehin 64-bit) hat das geklappt. Ich finde das Tool aber etwas überdimensioniert wenn man nur die CPU Affinity steuern will :) sonst ne coole Sache.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Braucht man das, wenn der Scheduler des OS was taugt?

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12069
Nah. Vermutlich verliert man dadurch sogar ein Quentchen Performance unter realen Bedingungen. Der OS-Scheduler kann meist besser entscheiden, was fuer einen gewissen Prozess gerade an Affinitaet sinnvoll ist, als der User.

Chrissicom

Rise of the Ryzen
Avatar
Registered: Jul 2006
Location: Falkensee
Posts: 1942
Ein OS mit perfektem Scheduler gibt es nicht, insbesondere keinen der gescheit mit HT umgeht.

Es kann durchaus sinnvoll sein, eine Anwendung auf 1 oder 2 Cores zu beschränken. Wenn ich beispielsweise 2 x264 Videos encode und dabei noch schnell mit Photoshop arbeiten möchte, wäre es nicht so lustig wenn das encoden alle Cores voll belastet. Woher soll das System/der Scheduler denn wissen, dass ich der Anwendung nicht die maximal mögliche Leistung zur Verfügung stellen will?

P.S. Wenn ich 4 x264 Videos gleichzeitig encode, geht es schneller wenn ich jedem einen Core gebe, als wenn ich das System selber arbeiten lasse. Sowohl unter Windows als auch Linux. Wers nicht glaubt kann es ja selber versuchen.
Das Problem ist hier einfach, das selbst ein einziges switchen der Cores (was mit an Sicherheit grenzender Wahrscheinlichkeit mehrmals auftritt) den Prozess verzögert im Gegensatz zum ausführen auf einem dedizierten Core. Systemprozesse werden hier jedoch sowohl unter Linux als auch Windows intelligent dazwischen gescheduled.
Bearbeitet von Chrissicom am 02.11.2009, 00:54

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Zitat von Chrissicom
Ein OS mit perfektem Scheduler gibt es nicht, insbesondere keinen der gescheit mit HT umgeht.

Sowohl Linux als auch Windows (ich glaub seit XP) sind HT-aware.

Zitat von Chrissicom
Wenn ich beispielsweise 2 x264 Videos encode und dabei noch schnell mit Photoshop arbeiten möchte, wäre es nicht so lustig wenn das encoden alle Cores voll belastet. Woher soll das System/der Scheduler denn wissen, dass ich der Anwendung nicht die maximal mögliche Leistung zur Verfügung stellen will?

Prozessprioritäten. Wenn ich mit 8 Threads im Hintergrund irgendwas compiliere, kann ich im Vordergrund ganz normal arbeiten.

Zitat von Chrissicom
P.S. Wenn ich 4 x264 Videos gleichzeitig encode, geht es schneller wenn ich jedem einen Core gebe, als wenn ich das System selber arbeiten lasse. Sowohl unter Windows als auch Linux.

Das mag schon sein, aber wie groß ist der Unterschied wirklich? 1%? 5%? 10%? noch mehr?

Mr. Zet

Super Moderator
resident spacenerd
Avatar
Registered: Oct 2000
Location: Edge of Tomorrow
Posts: 12040
that, ich weiß aus verlässlicher Quelle, dass du selbst schon die Erfahrung gemacht hast, dass ein gutes Scheduling vom OS in manchen Fällen einfach nicht ausreicht:
Unreal Tournament (99) läuft (unter Windows zumindest) absolut unbrauchbar, solange man es nicht auf nur einen Core beschränkt.


;)

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Zitat von Mr. Zet
Unreal Tournament (99) läuft (unter Windows zumindest) absolut unbrauchbar, solange man es nicht auf nur einen Core beschränkt.

AFAIR lief das mit einem Core nicht besser. Aber wenn ich die Kiste wieder mal zusammenbaue, werde ich das nochmal testen. :)

InfiX

she/her
Avatar
Registered: Mar 2002
Location: Graz
Posts: 14195
ich hatte das ut99 problem mit dem core 2 duo auch, aber mit dem i7 nicht mehr.

also bei mir rennts auf jedenfall jetzt ohne irgendwas.

Mr. Zet

Super Moderator
resident spacenerd
Avatar
Registered: Oct 2000
Location: Edge of Tomorrow
Posts: 12040
Aha, wusste nicht, dass das auch vom Prozessor so stark beeinflusst wird. Ich kann nur sagen, dass es mit Athlon 64 X2 (3800+) weder mit WinXP, noch mit Win7 geht.

Es hängt fest, rennt im Anschluss super schnell, quasi Zeitraffer, bis wieder der Punkt erreicht wurde, wo man eigentlich gerade sein sollte, und das ganze wiederholt sich sogleich von vorne.

Auf einen Core beschränken und es geht problemlos (meistens jedenfalls)...

Chrissicom

Rise of the Ryzen
Avatar
Registered: Jul 2006
Location: Falkensee
Posts: 1942
Also ich hab bei dem Spiel irgendeinen Startparameter gesetzt, der das Problem behoben hat, ich hab aber jetzt keine Ahnung mehr was das war. Könnte es ja mal wieder installieren und testen.

Zitat
1%? 5%? 10%? noch mehr?

20-30% also deutlich messbar. 1%-3% würde ich noch als Messungenauigkeit bezeichnen.

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12069
Dann ist der Windows-Scheduler einfach Muell.

Chrissicom

Rise of the Ryzen
Avatar
Registered: Jul 2006
Location: Falkensee
Posts: 1942
Wie ich geschrieben habe, war der selbe Effekt unter Linux (Ubuntu 9.04 64-bit) zu beobachten ;) ...Mac konnte ich nicht testen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz