• 24.04.2024, 11:16
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Programme mit Prozessorzuteilung starten

Mittwoch, 9. Januar 2008, 16:21

Ich möchte gern einige Programme auf festgelegten Kernen meines Prozessors laufen lassen.
Da diese Programme allerdings nicht ständig laufen, muss ich diese immer wieder zuteilen - was bisweilen eher nervig wird.
Ich habe von einem bekannten das Programm SMPSeeSaw empfohlen bekommen, womit ich das recht komfortabel machen kann. Das Problem dabei ist allerdings, dass sich das Programm nicht merken kann, ob dieser Task schon einmal früher aufgeteilt wurde und ich muss daher immer wieder neu einteilen.
Gibt es da Programme die das besser können? Im Idealfall sogar noch mit Profilen, wie die Prozesse verteilt werden können; je nach Situation.

Noch aus Interesse: Warum lassen sich bestimmte Prozesse nicht zuteilen? Der Leerlaufprozess ist klar, aber warum andere nicht?

Ich benutze einen AMD 64 X2 3800+ und Windows XP SP2.
(14:03:23) (Cerbis_Latran) Dude, uhm. Do me a personal favor?
(14:03:51) (Eliza) what is it?
(14:04:04) (Cerbis_Latran) Never kill anyone. You'd enjoy it far too much.

Re: Programme mit Prozessorzuteilung starten

Mittwoch, 9. Januar 2008, 17:48

kleien nebenfrage: welchen sinn macht es prozesse bestimmten cores zuzuweisen?

rayxt

Senior Member

Re: Programme mit Prozessorzuteilung starten

Mittwoch, 9. Januar 2008, 18:30

Folgendes habe ich vor 2 Jahren an einen meiner Kollegen verschickt (keine Ahnung wo ich das her hatte):


Multiprozessorsysteme: Programm zu einer CPU zuordnen

Windows NT und Windows 2000/XP unterstützen ja auch Systeme mit mehreren CPUs. Zur Laufzeit eines Programms ist es möglich den Taskmanager zu verwenden, um das Programm einer bestimmten CPU zuzuordnen. Auf Dauer ist das aber lästig, denn jedes Mal wenn das Programm gestartet wird muss die Zuordnung neu erfolgen. Dafür gibt es aber Abhilfe.
Das Programm Imagecfg.exe von der NT (W2K) CD kann die CPU Zuordnung nämlich dauerhaft duchführen. Sie finden dieses Programm auf der CD im Ordner \support\debug\i386 bei NT 4 oder auf dem Windows 2000 Server Resource Kit Supplement 1. Um die CPU Zuordnung dauerhaft zu machen benötigen Sie folgende Kommandozeile:

Imagecfg -a XXX "Laufwerk:\Programmpfad"

Dabei ist XXX ein Hexadezimalwert der angibt, welcher CPU
das Programm zugeordnet sein soll. Unterstützt werden alle Werte von 0 bis 31, in der Praxis werden Sie aber nur 2 CPUs vorliegen haben. Der Wert für die erste CPU lautet dann 0x1, der für die zweite 0x2.

Die originale Programmdatei ist vor der Behandlung mit dem Tool "imagecfg.exe" zu sichern, da die Programmdatei verändert wird und es momentan offenbar keine Möglichkeit gibt, die Änderungen "auf normalem Wege" zurückzusetzen.

Beispiele:

Als Beispiel nehme ich hier mal den Acrobat Reader in der Version 6. Um diesem Programm auf einer Hyperthreading- oder Multiprozessor-Umgebung vorzumachen, dass nur eine CPU verfügbar ist, lautet der Befehl so:

C:\Programme\Adobe\Acrobat 6.0\Reader>imagecfg -u AcroRd32.exe

Um dem Programm nun die CPU "1" zuzuweisen lautet der Befehl:

C:\Programme\Adobe\Acrobat 6.0\Reader>imagecfg -a 0x1 AcroRd32.exe

bzw für die CPU "0" (so wird die 1.logische CPU im Taskmanager bezeichnet):

C:\Programme\Adobe\Acrobat 6.0\Reader>imagecfg -a 0x2 AcroRd32.exe
Adult Gamers Germany
zigzag

Re: Programme mit Prozessorzuteilung starten

Donnerstag, 10. Januar 2008, 21:13

Besten Dank!

Das Ganze macht insofern sinn, dass bestimmte Prozesse auf die Weise fast einen kompletten Kern nur für sich beanspruchen. Bei prozessorlastigen Programmen kann das schon mal 25% Leistung ausmachen (getestet mit Dwarf Fortress).

Das Spiel ist brutal gegenüber der CPU wenn die Festung wächst. ;D
(14:03:23) (Cerbis_Latran) Dude, uhm. Do me a personal favor?
(14:03:51) (Eliza) what is it?
(14:04:04) (Cerbis_Latran) Never kill anyone. You'd enjoy it far too much.

rayxt

Senior Member

Re: Programme mit Prozessorzuteilung starten

Donnerstag, 10. Januar 2008, 21:59

Gern geschehn!
Adult Gamers Germany
zigzag

Re: Programme mit Prozessorzuteilung starten

Freitag, 11. Januar 2008, 13:25

Zitat von »Eliza«

Das Ganze macht insofern sinn, dass bestimmte Prozesse auf die Weise fast einen kompletten Kern nur für sich beanspruchen. Bei prozessorlastigen Programmen kann das schon mal 25% Leistung ausmachen (getestet mit Dwarf Fortress).

Das verstehe ich nicht.
Nach dem Abarbeiten eines Interrupts ist es (fast) egal auf welchem Core weiter gemacht wird, weil von der Thread-Umgebung (Register, Pipelines & L1-Cache) wenig Brauchbares übrigbleibt.
Selbst wenn man alle Benutzer- und IO-IRQs sperrt, bleibt dennoch der Scheduler übrig (den man besser nicht abschalten sollte ;) ).

Die (gemessenen) geringen Performance-Unterschiede zwischen den unterschiedlichen Crossbar-Architekturen deuten auch darauf hin, daß das ziemlich egal ist.
Die hochgelobten Unterschiede reduzieren sich in der Praxis auf ein paar Prozent Performance-Gewinn.
Selbst die immer wieder beschimpfte Netburst-Architektur (mit ihren ellenlangen Pipelines) reagiert weniger empfindlich auf Kontext-Wechsel als der Konkurrenz lieb ist.

Zitat

Noch aus Interesse: Warum lassen sich bestimmte Prozesse nicht zuteilen? Der Leerlaufprozess ist klar, aber warum andere nicht?

Alles was zeitkritisch ist, muß auf allen Prozessoren laufen (dürfen), weil die Kiste sonst (lebenswichtige) Events verpennt.
Dazu kommt dann noch der übliche SMP-Overhead (Aufräum- und Syncronisier-Routinen, sowie "Warteschleifen" für Semaphores und diverse Clean- und Ready-States), der nicht auf dem "falschen Core" laufen kann.

mfg, Thomas

Re: Programme mit Prozessorzuteilung starten

Freitag, 11. Januar 2008, 13:31

Tom: Vielleicht stammen die Vergleiche ja von einer Maschine mit eigenem Speicher pro CPU, wo dann beim Thread-Hopping alles rumgeräumt werden muss?
"Live free or die: Death is not the worst of evils."

Re: Programme mit Prozessorzuteilung starten

Freitag, 11. Januar 2008, 15:36

Ich habe das auch schon mal gebraucht...

Älter Spiele z.B. kommen Teilweise gar nicht mit 2 Kernen klar oder werden extrem Langsam...Aufgefallen ist mir das z.B. Bei Command&Conquer Generals...das Läuft auf meinem C2D Notebook deutlich besser wenn es nur eine CPU nutzt, teilweise startet das Spiel auf 2 Kernen auch gar nicht sauber...warum weiß ich nicht, iss aber so ;D

Ansonsten halte ich es auch für unnötig, Programmen gezielt irgendwelche Kerne zuzuweisen...

Gruß, Matthias
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

Re: Programme mit Prozessorzuteilung starten

Freitag, 11. Januar 2008, 20:42

Es kann natürlich sein dass mit wachsendem Rechenaufwand sich das Ganze relativiert. Im Moment kann ich nicht viel dazu sagen. Mir fehlt für sichere Vorhersagen ganz einfach das Hintergrundwissen.
Zumal...ein paar Prozent Leistunsgewinn ohne nennenswerten Aufwand sind doch auch nett, oder? ;)

Wie Toastbrot außerdem sagt, tun sich manche Programme etwas schwer mit Multiprozessorumgebungen. Mir würde im Moment nur System Shock 2 einfallen, welches nach wenigen Sekunden einfriert, sofern es nicht auf einen einzelnen Kern eingeteilt wird, aber sie existieren (wobei das mit 'modernen' Programmen wohl keine Auswirkung mehr haben wird).
(14:03:23) (Cerbis_Latran) Dude, uhm. Do me a personal favor?
(14:03:51) (Eliza) what is it?
(14:04:04) (Cerbis_Latran) Never kill anyone. You'd enjoy it far too much.

Gelöschter Benutzer

unregistriert

Re: Programme mit Prozessorzuteilung starten

Samstag, 12. Januar 2008, 20:55

Zitat von »Toastbrot«

Ich habe das auch schon mal gebraucht...

Älter Spiele z.B. kommen Teilweise gar nicht mit 2 Kernen klar oder werden extrem Langsam...Aufgefallen ist mir das z.B. Bei Command&Conquer Generals...das Läuft auf meinem C2D Notebook deutlich besser wenn es nur eine CPU nutzt, teilweise startet das Spiel auf 2 Kernen auch gar nicht sauber...warum weiß ich nicht, iss aber so ;D

Ansonsten halte ich es auch für unnötig, Programmen gezielt irgendwelche Kerne zuzuweisen...

Gruß, Matthias


Jo... auf der letzten SPL lief das teilweise nur mit einem "abgeschalteten" Kern... sonst direkt nach dem Start Freeze, BTD, Bluescreen... ::)

Re: Programme mit Prozessorzuteilung starten

Donnerstag, 17. Januar 2008, 11:05

Ich hatte es auch schon, dass ein Spiel schneller lief als erwünscht. Need for Speed Carbon und Need for Speed Underground 2 waren bei mir solche Kandidaten. Bei Carbon dachte ich zuerst, dass es so schnell sei und hab mich sogar gefreut - bis die Autos dann schneller wurden ^^
Bei NFSU2 hatte ich das nur im Netzwerkspiel mit Freunden. Beim Dragrace konnte ich mit den Lahmsten Autos gegen die aufs übelst getunten Monsterkarren antreten und bin trotzdem fast ohne Schalten weggefahren ^^ Vielleicht gabs dazu ja nen Patch - aber es war schon ziemlich witzig - zumindest für mich.

Worans lag? Keine Ahnung - nachdem der Prozess auf einen festen Kern gewiesen war, war es wieder normal.
Gewissen ist die innere Stimme, die uns warnt, dass jemand zuschauen könnte.

Habe eine ATI X1900XT 512MB samt Wasserkühler Aquagratix X1900 zu vergeben - schreibt mir ne PN bei Interesse

Re: Programme mit Prozessorzuteilung starten

Donnerstag, 17. Januar 2008, 11:07

@Topic:
Artikel auf Thg bietet genau das was du suchst. Die haben ein Tool, welches Programme an Kerne verweist und das ganze durchhält. Man muss nur das Programm starten.

Re: Programme mit Prozessorzuteilung starten

Freitag, 18. Januar 2008, 16:10

Zitat von »gr3if«

@Topic:
Artikel auf Thg bietet genau das was du suchst. Die haben ein Tool, welches Programme an Kerne verweist und das ganze durchhält. Man muss nur das Programm starten.



danke für den tipp!

hab es mal mit silent hunter3 versucht und subjektiv ist es singlecore schneller, als dualcore :)
e6600 Asus p5b del./wifi powercolor radeon x1900xtx 2048 gb kit corsair wd raptor 150gb samsung sataII 250gb enermax liberty 500w

Re: Programme mit Prozessorzuteilung starten

Freitag, 18. Januar 2008, 18:55

Tjo schreiben sie auch, dass man dies ansich für jedes Programm was man öfter benutzt machen muss, da einige so andere so besser laufen.