Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Win7 Zugehörigkeit Prozessorkerne

Frage Microsoft Windows 7

Mitglied: infowars

infowars (Level 2) - Jetzt verbinden

04.07.2012, aktualisiert 15:17 Uhr, 6825 Aufrufe, 11 Kommentare

Moin,
ich versuche einen oder mehrere Prozesse mit allen Kernen zu starten.
Das klappt aber nicht. Ich habe auch schon Tools wie GnSAffinity und TaskAssign runtergeladen, aber auch mit denen will es einfach nicht.
Zuletzt habe ich so versucht die Prozesse über eine Kommando-Box mit mehr als nur einem Kern zu starten:

C:\Windows\System32\cmd.exe /C START "GTR2" /affinity 10 "X:\Program Files (x86)\SimBin\GTR 2\GTR2.exe"
C:\Windows\System32\cmd.exe /C START "GTR2" /affinity 10 "X:\Program Files (x86)\SimBin\GTR 2\GTR2Dedicated.exe"

Aber auch so wird der Prozess nur mit einem Kern gestartet. Der Rechner ist ein Win7 mit 64bit und einem 4-Kern AMD Phenom II.

Gibt es jemanden der dieses Problem schon hatte und es lösen konnte ?

MfG
Mitglied: Penny.Cilin
04.07.2012, aktualisiert um 10:16 Uhr
Moin,

1. Frage: Ist die Anwendung Mehrprozessorfähig, d. h. nutzt diese auch mehrere Prozesoren?
2. Frage: Was bezweckst Du damit, eine Anwenung gleich auf mehrere Prozessoren zu starten? Lass es doch das Betriebssystem bzw. der Anwendung entscheiden.

Außerdem mußt Du beimParameter /Affinity den Wert in Hex angeben also /Affinity 0x3 z. Beispiel.


Gruss Penny
Bitte warten ..
Mitglied: infowars
04.07.2012, aktualisiert um 10:42 Uhr
1. Ja, ich muss z.Z. immer manuell die Zugehörigkeit auf alle Kerne verteilen, da die CPU-Auslastung des 1.Kerns sonst permanent zu 100 % ausgelastet ist.
2. Win7 startet den Prozess immer nur mit CPU 0, die benötigte CPU-Power ist jedoch viel höher. Kann ja mal ein Bild mit der Auslastung posten

Das mit dem Hex-Wert hab ich da gelesen:
http://www.cosmiq.de/qa/show/3284930/Wie-kann-ich-bei-Win7-die-4-Kerne- ...

Hab mit dem Hex-Wert auch schon rumgespielt,egal ob 0x10 oder 10, der Prozess startet immer nur mit einem Kern.
Bitte warten ..
Mitglied: Penny.Cilin
04.07.2012 um 10:58 Uhr
Zitat von infowars:
C:\Windows\System32\cmd.exe /C START "GTR2" /affinity 10 "X:\Program Files (x86)\SimBin\GTR 2\GTR2.exe"
C:\Windows\System32\cmd.exe /C START "GTR2" /affinity 10 "X:\Program Files (x86)\SimBin\GTR
2\GTR2Dedicated.exe"

Abre wenn ich den Pfad sehe, dann ist es eine 32bit Anwendung. Und ist diese Mehrprozessorfägig? Um welche Anwendung handelt es sich?

Gruss Penny
Bitte warten ..
Mitglied: infowars
04.07.2012, aktualisiert um 11:25 Uhr
Das ist ein Rennspiel für den PC namens GTR2.
Sobald jemand auf dem dedizierten Server spielt, schiesst die CPU-Last nach oben.
Je mehr Spieler mitfahren, desto höher die CPU-Last.
Bei manuellem Einstellen der Zugehörigkeit verteilt sich die Last schön gleichmässig auf alle Kerne.
Wird beim Start des dedizierten Servers vergessen die Zugehörigkeit auf alle Kerne einzustellen ruckelt das Spiel grausig.
Wenn dann grad kein Admin da ist, ist das doof.
Gruss zurück.
Bitte warten ..
Mitglied: SlainteMhath
04.07.2012 um 11:27 Uhr
Moin,

Hab mit dem Hex-Wert auch schon rumgespielt,egal ob 0x10 oder 10,
10 dezimal ist 0xA in Hex, aber das nur nebenbei.

Du kannst keine Applikation "auf allen Kernen starten". Entweder das Programm ist Mehrkern/Multithreading fähig oder nicht.

Was du mach kannst: Programm 1 auf CPU0 laufen lassen, Programm 2 auf CPU1 und Program 3 auf CPU2 - das ist auch genau das was der /affinity Schalter bewirkt.

lg,
Slainte
Bitte warten ..
Mitglied: infowars
04.07.2012, aktualisiert um 11:46 Uhr
Zitat von SlainteMhath:
Hab mit dem Hex-Wert auch schon rumgespielt,egal ob 0x10 oder 10,
10 dezimal ist 0xA in Hex, aber das nur nebenbei.
Hab ich auch schon probiert, der Prozess startet nur auf CPU0.
Zitat von SlainteMhath: Du kannst keine Applikation "auf allen Kernen starten". Entweder das Programm ist Mehrkern/Multithreading fähig
oder nicht.
Wenn ich manuell die Zugehörigkeit festlege, ruckelt aber das Spiel nicht mehr.
Zitat von SlainteMhath:Was du mach kannst: Programm 1 auf CPU0 laufen lassen, Programm 2 auf CPU1 und Program 3 auf CPU2 - das ist auch genau das was der
/affinity Schalter bewirkt.
Dann muss das doch auch irgendwie für mehrere Kerne gehen, behauptet jedenfalls der da:
http://www.cosmiq.de/qa/show/3284930/Wie-kann-ich-bei-Win7-die-4-Kerne- ...
Zitat :
/affinity 3 (nimmt cpu 0 + 1)
Bitte warten ..
Mitglied: Penny.Cilin
04.07.2012, aktualisiert um 12:29 Uhr
Weil seine Anwendung vielleicht Mehrprozessor/Mehrkernfähig ist?.
Nur weil ein Anwender eine Anwendung auf mehrere Prozessoren/Kernen verteilen kann, heißt nicht das es bei JEDER Anwendung geht.

Prüfe doch erstmal, ob DEINE Anwendung Mehrkern/Multithreading überhaupt unterstützt.

Wenn Deine Anwendung Mehrkern/Multithreading NICHT unterstützt, wird es auch nicht funktionieren - Basta.

Gruss Penny
Bitte warten ..
Mitglied: SlainteMhath
04.07.2012 um 12:39 Uhr
0xA ... Hab ich auch schon probiert, der Prozess startet nur auf CPU0.
So eben mal nachgelsesen. /affinity erwartet eine DEZIMAL Zahl, die als Bitmaske für die zu verwendenten CPU Kerne interprtiert wird:
CPU0 = 1
CPU1 = 2
CPU3 = 4
CPU4 = 8

Alle zu verwendenten Kerne müssen zusammen gezählt werden. CPU0+CPU1 = 1+2 = 3 oder CPU2+CPU4 = 4+8 = 12

Dann muss das doch auch irgendwie für mehrere Kerne gehen, behauptet jedenfalls der da:
Ja die Sprechen da auch von dem Programm Blender - das ist ein Reaytracing Renderer der Multithrading unterstützt.

Wenn Deine Anwendung Mehrkern/Multithreading NICHT unterstützt, wird es auch nicht funktionieren - Basta.
Genau!
Bitte warten ..
Mitglied: infowars
04.07.2012, aktualisiert um 13:01 Uhr
So, nochmal nachgelesen, GTR2 ist definitiv Multicore-fähig, startet standardmässig aber nur mit einem Kern.
Bitte warten ..
Mitglied: Penny.Cilin
04.07.2012, aktualisiert um 13:34 Uhr
Dann schau mal hier:

link1 oder link2

oder nutze google suche

Es scheint hier widersprüchliche Aussagen zu geben.
Bitte warten ..
Mitglied: infowars
04.07.2012, aktualisiert um 15:26 Uhr
Bin auch grad soweit, dass ich jetzt mit dem Auto-Updater Einstellungen vornehme, die es sonst nicht (offen) gibt.
Frage mich nur gerade:
Wenn die es mit einem Tool schaffen muss es ja einen Weg geben.
What ever, ich klemme mich mal dahinter und poste dann das Ergebnis:

EDIT:
Die Verknüpfung, die angelegt wird sieht dann so aus:
C:\Python27\pythonw.exe "C:\Pfad\Bierbuden Autoupdate\cpuaffinity.py" --cpuid=0,1,2,3 "u:\Program Files (x86)\SimBin\GTR 2\GTR2.exe"

Und damit funktionierts !!!
Muss mich wohl mal mit Python beschäftigen.
Danke an alle Antworten !
MfG


Hier noch der Code:
01.
#!/usr/bin/env python 
02.
# -*- coding: utf-8 -*- 
03.
04.
# $Id: cpuaffinity.py 770 2011-10-19 21:00:15Z Stef $ 
05.
# Copyright (C) 2011 Stefan Schwendeler ( kungpfui@gmail.com ) 
06.
 
07.
""" Set CPU affinity and process priority of a new process. """ 
08.
 
09.
__version__ = u'$Revision: 770 $' 
10.
__author__ = u'Stefan Schwendeler' 
11.
 
12.
import os, sys 
13.
import optparse 
14.
import multiprocessing 
15.
import time 
16.
from ctypes import * 
17.
 
18.
 
19.
check_interval	= 5.0 
20.
validation_nb	= 12 
21.
 
22.
 
23.
# some constants of windows os 
24.
priorities = { 
25.
	'low':			0x00000040, 
26.
	'below_normal':	0x00004000, 
27.
	'normal':		0x00000020, 
28.
	'above_normal':	0x00008000, 
29.
	'high':			0x00000080, 
30.
	'realtime':		0x00000100, 
31.
32.
 
33.
 
34.
BYTE      = c_ubyte 
35.
WORD      = c_ushort 
36.
DWORD     = c_ulong 
37.
DWORD_PTR = c_ulong if sizeof(c_void_p) == 4 else c_ulonglong 
38.
LPBYTE    = POINTER(c_ubyte) 
39.
LPTSTR    = POINTER(c_char) 
40.
HANDLE    = c_void_p 
41.
PVOID     = c_void_p 
42.
LPVOID    = c_void_p 
43.
 
44.
class STARTUPINFO(Structure): 
45.
    _fields_ = [("cb",            DWORD), 
46.
                ("lpReserved",    LPTSTR), 
47.
                ("lpDesktop",     LPTSTR), 
48.
                ("lpTitle",       LPTSTR), 
49.
                ("dwX",           DWORD), 
50.
                ("dwY",           DWORD), 
51.
                ("dwXSize",       DWORD), 
52.
                ("dwYSize",       DWORD), 
53.
                ("dwXCountChars", DWORD), 
54.
                ("dwYCountChars", DWORD), 
55.
                ("dwFillAttribute",DWORD), 
56.
                ("dwFlags",       DWORD), 
57.
                ("wShowWindow",   WORD), 
58.
                ("cbReserved2",   WORD), 
59.
                ("lpReserved2",   LPBYTE), 
60.
                ("hStdInput",     HANDLE), 
61.
                ("hStdOutput",    HANDLE), 
62.
                ("hStdError",     HANDLE),] 
63.
 
64.
class PROCESS_INFORMATION(Structure): 
65.
    _fields_ = [("hProcess",    HANDLE), 
66.
                ("hThread",     HANDLE), 
67.
                ("dwProcessId", DWORD), 
68.
                ("dwThreadId",  DWORD),] 
69.
 
70.
 
71.
DETACHED_PROCESS = 0x00000008 
72.
 
73.
 
74.
def main(): 
75.
	""" the main routine :-)""" 
76.
	usage = "usage: %prog [options] <program path> [<arg 1> <arg n>]" 
77.
	parser = optparse.OptionParser(usage=usage) 
78.
	parser.disable_interspersed_args() 
79.
	parser.add_option("-c", "--cpuid", default="0", dest="cpuid", help="list of comma separated cpu IDs. E.g. 0,3 or 4,5") 
80.
	parser.add_option("-p", "--priority", default="normal", type="choice", choices=priorities.keys(), dest="priority", help="process priority class. [low, normal, high, realtime] - Default: %default") 
81.
	options, args = parser.parse_args() 
82.
 
83.
	if len(args) < 1: parser.error("incorrect number of arguments") 
84.
 
85.
	# check cpu IDs 
86.
	try: 
87.
		cpu_ids = [ int(id) for id in options.cpuid.split(',') ] 
88.
	except: 
89.
		parser.error("incorrect cpu id parameter") 
90.
 
91.
	cpu_count = multiprocessing.cpu_count() 
92.
	if not all([ id < cpu_count for id in cpu_ids ]): 
93.
		parser.error("invalid cpu id value") 
94.
 
95.
	# check program path 
96.
	if not os.path.exists(args[0]) or not os.path.isfile(args[0]): 
97.
		parser.error("incorrect program path") 
98.
 
99.
	cpu_affinity_mask = 0 
100.
	for id in cpu_ids: 
101.
		cpu_affinity_mask += (1 << id); 
102.
 
103.
	# re-join the commands to a string 
104.
	command = '' 
105.
	for arg in args: 
106.
 
107.
		if ' ' in arg: arg = '"'+arg+'"' 
108.
		if command != '': command += ' ' 
109.
		command += arg 
110.
 
111.
	startup_dir = os.path.dirname(args[0]) or None 
112.
 
113.
	priority_class = priorities[options.priority] 
114.
 
115.
	# start the process 
116.
	si = STARTUPINFO(); 
117.
	si.cb = sizeof(si) 
118.
	pi = PROCESS_INFORMATION(); 
119.
	if not windll.kernel32.CreateProcessA(None, command, None, None, False, DETACHED_PROCESS | priority_class, None, startup_dir, byref(si), byref(pi)): 
120.
		print("Can't create process."); 
121.
		sys.exit(1) 
122.
 
123.
	# wait some seconds 
124.
	time.sleep(check_interval) 
125.
 
126.
	dwProcessMask = DWORD_PTR(0) 
127.
	dwSystemMask = DWORD_PTR(0) 
128.
	if windll.kernel32.GetProcessAffinityMask ( pi.hProcess,  byref(dwProcessMask), byref(dwSystemMask) ) \ 
129.
		and (dwSystemMask.value & cpu_affinity_mask): 
130.
 
131.
		validations = 0 
132.
 
133.
		#~ print dwSystemMask.value, dwProcessMask.value, cpu_affinity_mask 
134.
		while validations < validation_nb: 
135.
			if not windll.kernel32.SetProcessAffinityMask( pi.hProcess, DWORD_PTR(dwSystemMask.value & cpu_affinity_mask) ): 
136.
				error_code = windll.kernel32.GetLastError() 
137.
				print("Error [%d]: Can't set process affinity mask.", error_code) 
138.
				break 
139.
 
140.
			time.sleep(check_interval) 
141.
			if not windll.kernel32.GetProcessAffinityMask ( pi.hProcess, byref(dwProcessMask), byref(dwSystemMask) ): 
142.
				print("Error Can't set process affinity mask.") 
143.
				break 
144.
			#~ print dwSystemMask.value, dwProcessMask.value, cpu_affinity_mask 
145.
			if ( dwSystemMask.value & cpu_affinity_mask ) != dwProcessMask.value: 
146.
				validations = 0 
147.
			else: 
148.
				validations += 1 
149.
 
150.
	else: 
151.
		print("Error: Can't set process affinity mask. CPU ID does not exist.") 
152.
 
153.
	windll.kernel32.CloseHandle(pi.hThread) 
154.
	windll.kernel32.CloseHandle(pi.hProcess) 
155.
 
156.
	sys.exit(0) 
157.
 
158.
 
159.
 
160.
if __name__ == "__main__": 
161.
	main() 
162.
 
Bitte warten ..
Ähnliche Inhalte
Exchange Server
PowerShell: Get-Mailbox soll auch OU Zugehörigkeit mit ausgeben
gelöst Frage von TiTuxExchange Server6 Kommentare

Hallo, ich benötige eine Excel-Liste mit all unseren Postfächern. Ich habe bis jetzt diesen Aufruf verwendet: Get-Mailbox -ResultSize Unlimited ...

Exchange Server
Exchange 2010 - CAS-MB-Zugehörigkeit reglementieren
Frage von emeriksExchange Server1 Kommentar

Hi, ist es in Exchange 2010 möglich, zu steuern, welche MB-Server ein CAS bedienen darf und/oder welche nicht? Ich ...

Windows Server
Gruppen Zugehörigkeit nach Anmeldung erzwingen per VPN
Frage von opc123Windows Server3 Kommentare

Hallo, die Gruppen Zugehörigkeit wird ja bei der Anmeldung geprüft. Da unsere Freigaben wie wohl so oft mit Gruppen ...

Windows Installation
Win7 Win8 Multiboot - Win7 entfernen
Frage von DoppellhelixWindows Installation5 Kommentare

Hallo alle, ich habe eine offizielle WIN7 Prof installation. Habe dann irgendwann mal auf Win8 geuptdatet. Win8 habe ich ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 6 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 7 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 14 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...