Autor Beitrag
g1o2k4
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: Mi 26.03.08 16:41 
hi

zuerst ist vielleicht zu sagen ich, dass ich einen intel core 2 quad prozessor hab.
mir ist aufgefallen, dass windows ,sofern keine spezielle cpu zugehörigkeit festgelegt wurde ,die ganze zeit laufende non-multithreading anwendungen auf der cpu kernen hin und herschiebt, so dass statt auf einer cpu 100% benutzt werden auf jeder ca 25% benutzt werden...

ich habe mal verschiedene singlecore also non -multithreading benchmarks getestet und festgestellt, dass die anwendungen ca 5%-10% schneller fertig sind wenn man sie einem kern zuweist statt es von windows verwalten zu lassen.

kann man irgendwie einstellen, dass programme nur einem kern zugewiesen werden bevor man sagt, dass sie mehrere cpus nutzen dürfen?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 26.03.08 21:26 
Man könnte sich da ne Überwachung für sowas selber bauen, allerdings wäre das Resourcen-Verschwendung, da Single-Core-Anwendungen auf nem Multi-Core eh nicht performant laufen werden ;-) Setz die lieber manuell auf nen festen Core und lass sie da laufen; Single-Thread-Anwendungen können mit Multi-Cores eh nix anfangen ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.03.08 21:37 
g1o2k4 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: Do 27.03.08 12:57 
user profile iconBenBE hat folgendes geschrieben:
Man könnte sich da ne Überwachung für sowas selber bauen, allerdings wäre das Resourcen-Verschwendung, da Single-Core-Anwendungen auf nem Multi-Core eh nicht performant laufen werden ;-) Setz die lieber manuell auf nen festen Core und lass sie da laufen; Single-Thread-Anwendungen können mit Multi-Cores eh nix anfangen ...


ja eben. deswegen will ich es ja nicht, dass ein task alle cpus benutzt. denn anscheinend kostet das "switchen" der cpus einige zeit. und pro sekunde wird ja permanent gewechselt. verständlich dass das zeit kostet.

was ich wollte ist eine systemveränderung, dass alle programme bzw ausgewählte nur einer cpu zugewiesen werden. das kann man ja nicht von hand machen oder mit nem tool, da kann ich auch den task manager nehmen. es sollte im system geändert, dass das erste gestartete programm der ersten cpu zugewiesen wird, das zweite, der zweiten usw.
damit die cpu optimal ausgenutzt wird, dadurch dass jeder kern gleichviele programme verarbeiten muss.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 27.03.08 13:07 
Und genau das ist die falsche Herangehensweise ;-)

Weil damit provozierst Du, dass z.B. u.U genau die Programme auf einer CPU landen, die sowieso schon viel CPU-Zeit brauchen. Was hier benötigt wird, ist eine Möglichkeit, die Dynamik nicht mehr auf Task-Switch-Ebene zu verwalten, sondern im Sekunden-Bereich, so dass auf aktuelle Auslastungszustände der CPU eingegangen wird und die Situation, dass viele Programme grad gleichzeitig viel CPU-Zeit benötigen, durch ein Verschieben der Prozesse auf verschiedene CPUs abgemildert wird.

@Performance-Einbuße: Das hängt damit zusammen, dass für die Synchronisierung des Cache-Inhaltes zwischen verschiedenen Kernen mehr Zeit von Nöten ist, als wenn etwas direkt aus dem L2-Cache kommt. Diese Latenz-Zeit entfällt aber, sobald ein Programm einem festen Kern zugewiesen ist, da der Anteil neu zu cachender Informationen geringer ist.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
g1o2k4 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 493



BeitragVerfasst: Do 27.03.08 14:17 
das beste wäre wenn die exe dateien der programme irgendwie getaggt wären ob sie für multithreading programmiert sind oder nicht. es reicht ja nicht einfach auszulesen wieviele threads ein programm hat, da es kaum vorkommt, dass es nur einen thread hat.