scripte bzw makros zur thread einteilung

BuRNeR77

Redshirt
Mitglied seit
30.05.2006
Beiträge
2
Renomée
0
hi, ich hoffe mir kann jemand weiterhelfen.
ich möchte für mein x2 die threads beim systemstart schon einen bestimmten kern zuweisen und bräuchte dafür hilfe/infos um es zu berwerkstelligen zu können.
achja, die sollen bei win xp prof sp2 laufen.

für tips und anregungen bedanke ich mich schonmal im voraus

cya
 
Das gehört eigentlich zu "Windows und Software"...
Du kannst einem Thread keine bestimmte CPU zuweisen. Einem Prozess dagegen schon.
Mir ist aber kein Mechanismus bekannt, mit dem man das einfach beim Aufruf von Applikationen machen kann.
Wozu auch, die Zuordnung der CPUs zu den Prozessen und ihren Threads ist Sache des OS und hier und da auch der Hersteller der Applikation(en).
Ansonsten kann man das als SW-Entwickler natürlich schon selbst in die Hand nehmen - für seinen eigenen Code.

Aber wenn Du unbedingt willst, hier mit einem Microsoft-Tool, mit dem Du die Exe so ändern kannst, dass sie nur noch mit einer bestimmten CPU läuft:
Multiprozessorsysteme: Programm einer CPU zuordnen

Und hier noch ein ähnliches Tool mit Sourcecode, bei dem die Exe nicht geändert wird (soweit ich das auf die Schnelle überblickt habe):
The Windows 2000/XP task manager allows the user to set "process affinities" that force a process to execute on one processor only. However, there is no practical means to isolate one or two processes to a CPU and keep other programs on the other processor. SMP Seesaw enables this.
http://www.mlin.net/SMPSeesaw.shtml

Komisch ist es allerdings schon, dass für das Ganze scheinbar keine richtig einfache Lösung existiert.
Falls doch, immer her damit! ;)
 
würde mich auch interessieren, denn dann kann man den ganzen windows kram einer cpu zuweisen und die 2. bleibt komplett frei für andere sachen :)
 
erstmal danke für die antwort. hab mich allerdings auch nicht korrekt ausgedrückt und meinte natürlich anwendungen zu einer core. und auch sorry das ich es net unter software sondern cpu mein problem schilderte, da ich hier neu bin und nicht so ganz den durchblick hab.
 
Ob nun Core oder CPU dürfte in diesem Fall dasselbe sein.

Ist mir gar nicht aufgefallen, daher
Willkommen im Forum!

Edit:
Muss mal korrigieren: Man kann einem Thread schon eine bestimmte CPU zuweisen. Aber dazu muss man erst mal an den Thread herankommen!
Wenn für den zuständigen Prozess eines Threads mehrere CPUs vergeben sind (Standard bei SMP unter Windows), kann man den Thread auf eine bestimmte CPU festlegen.
Von Anwenderseite aus können nur die Cores für einen Prozess, also einer Anwendung, zugewiesen werden. Diese Zuordnung, oder auch Affinität, lässt sich offensichtlich nur nach dem bereits erfolgten Start der Anwendung ändern. Das kann der Taskmanager oder auch das Tool SMP Seesaw. Und natürlich lässt sich so ein Tool auch als Cmd-Line App programmieren, um damit Programme für einen bestimmten Core zu starten.
Der andere Weg ist, im Exe-Header zu vermerken, dass die Applikation nur auf einem Core laufen soll. Das macht das Tool Imgacfg.exe, welches bei Win NT4/2000? noch auf der Installations-CD dabei war und im Windows 2000 Server Resource Kit beiliegt.
Ich bin mir ziemlich sicher, dass dieses Programm bzw. diese Option nur dazu gedacht war, problematischen Programmen bei SMP-Systemen auf die Sprünge zu helfen.

Und ich glaube nicht, dass es einen Sinn macht, die Cores auf die Applikationen selbst zu verteilen, ausser bei ganz bestimmten Aufgaben, wie z.B. zwei Instanzen Prime95 jeweils auf einem Core laufen zu lassen. Aber dazu bietet Prime95 ja auch einen entsprechenden Parameter.


Edit:
Hier gibt es übrigens das imagecfg tool und Infos dazu: imagecfg

Das dürfte sehr interessant sein:
Version 1.3 - Starts programs and sets their CPU affinity: Launch n Set v1.3

Oder das:
Set CPU affinity for running programs with favorites list: CPU Affinity Setter v1.08

Ciao,
Ray
 
Zuletzt bearbeitet:
Zurück
Oben Unten