Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Feste Zuordnung von physikalischen Kernen
- - By Lothar Jung Date 2023-11-24 09:08 Upvotes 2
Unter Windows können einem bestimmten Programm mehrere physikalische Cores zugeordnet werden.
Dies wird als Setzen der Prozessoraffinität bezeichnet. Die Prozessoraffinität bestimmt, welche CPU-Kerne ein bestimmtes Programm oder einen Prozess verwenden darf.

1. `Ctrl` + `Shift` + `Esc` drücken, um den Task-Manager zu öffnen.

2. Unter Windows findet man die Prozessliste unter dem Tab die  „Details“.

3. In der Liste nach dem Programm suchen, dem man bestimmte Cores zuweisen möchte.

4. Mit der rechten Maustaste auf den Prozess und „Zugehörigkeit festlegen“ oder „Affinität setzen“.

5. Im daraufhin erscheinenden Fenster werden bestimmte Cores auswählt, die das Programm nutzen darf. Man kann mehrere Cores ankreuzen.

6. Änderungen abspeichern mit OK.

Die Schachengine dürfte sich etwas beschleunigen und die Ergebnisse deterministischer sein.

Diese Einstellung ist nur temporär und gilt nur, solange das Programm läuft. Nach einem Neustart des Programms oder des Computers wird die Affinität wieder auf den Standard zurückgesetzt.
Parent - - By Peter Weise Date 2023-11-24 11:31
Lothar Jung schrieb:

...
Diese Einstellung ist nur temporär und gilt nur, solange das Programm läuft. Nach einem Neustart des Programms oder des Computers wird die Affinität wieder auf den Standard zurückgesetzt.


Mit bitsum process lasso kann man diese Einstellung und noch vieles andere mehr dauerhaft speichern/zuordnen!
Parent - - By Thomas Plaschke Date 2023-11-24 14:12

> ... bitsum process lasso ...


Das ist dafür genau das richtige Werkzeug!

Viele Grüße
Th. Plaschke
Parent - By Lothar Jung Date 2023-11-24 15:23 Edited 2023-11-24 15:38
Hier die Lösungen für Linux:

"Bitsum Process Lasso", ein (kostenpflichtiges)Windows-Tool, das die CPU-Auslastung und Prozessprioritäten verwaltet, um die Systemleistung zu optimieren. Für Linux gibt es keine direkte Entsprechung zu Process Lasso, aber es gibt verschiedene Tools und Methoden, um ähnliche Funktionen zu erreichen. Einige davon sind:

1. **`htop` und `top`**: Diese interaktiven Prozess-Viewer ermöglichen es Ihnen, Prozesse zu überwachen und zu verwalten. Sie können Prozesse nach CPU- und Speichernutzung sortieren, Prozesse beenden und ihre Prioritäten ändern.

2. **`nice` und `renice`**: Mit diesen Befehlen können Sie die Priorität von Prozessen festlegen oder ändern. Ein niedrigerer "nice value" gibt einem Prozess eine höhere Priorität, während ein höherer Wert das Gegenteil bewirkt.

3. **`cpulimit`**: Dieses Tool ermöglicht es Ihnen, die CPU-Nutzung eines Prozesses zu begrenzen. Es ist nützlich, um zu verhindern, dass ein Prozess zu viel CPU-Zeit verbraucht.

4. **`cgroups` (Control Groups)**: Dies ist ein leistungsfähiges Feature des Linux-Kernels, das es ermöglicht, Ressourcen wie CPU-Zeit, Systemspeicher, Netzwerkbandbreite oder Kombinationen davon zu verwalten und zu begrenzen. Es wird oft in Serverumgebungen für Ressourcenmanagement und Containerisierung (wie Docker) verwendet.

5. **`taskset`**: Mit diesem Befehl können Sie die CPU-Affinität eines Prozesses festlegen, d.h. bestimmen, auf welchen CPUs ein Prozess ausgeführt werden darf.

6. **`Tuned` und `TLP`**: Diese Tools sind für die Systemoptimierung und das Energiemanagement. Sie können dabei helfen, die Leistung und den Energieverbrauch von Linux-Systemen zu optimieren.

7. **`irqbalance`**: Dieses Programm verteilt Hardware-Interrupts über die verschiedenen Prozessoren auf einem Multiprozessor-System, um die Leistung zu verbessern.

Diese Tools bieten eine Vielzahl von Möglichkeiten, um die Prozessverwaltung und Systemleistung unter Linux zu optimieren. Sie erfordern jedoch ein gewisses Maß an technischem Verständnis und sollten mit Vorsicht verwendet werden, um Systemstabilität und -leistung nicht negativ zu beeinflussen.

Für Windows gibt es im Übrigen das kostenfreie Profi-Tool „Process Explorer“.
Dies ist ein fortgeschrittenes Tool von Microsoft Sysinternals, das detailliertere Informationen über Prozesse bietet als der Standard-Task-Manager.
Parent - - By Thomas Plaschke Date 2023-11-24 14:10

> Die Schachengine dürfte sich etwas beschleunigen und die Ergebnisse deterministischer sein.


Beschleunigung: Stimmt. Kann ich bestätigen, auch, wenn es sich nur im gerade mal sehr niedrigen einstelligen Prozentbereich bewegt. Es wirkt sich umso mehr aus, je mehr Threads verteilt/zugeordnet werden. Es bringt nichts mehr, wenn die Engine mehr Threads nutzt als Prozessorkerne vorhanden sind. In diesem Fall ist das Betriebssystem effizienter. Das heißt zugleich es bringt überhaupt nur was, solange man den Prozessorkernen nicht mehr als einen Engine-Thread zuweist.

Ich hatte es in früheren Threads erwähnt, dass ich für diese Aufgabe eine Softwarelösung nutze, bei der man die Aufteilung für jedes Programm, hier jede Engine, voreinstellen kann. Das Programm ist dabei recht komfortabel, kann man die gewünschten Engines doch mit Pfaden, Namen und Wildcards auswählen.

> ... dürfte ... deterministischer sein ...


Nein. Ich habe damit jahrelange Erfahrung, aber das ist mir nicht aufgefallen. Die Zahl der Threads hat darauf Einfluss, aber die ändert sich ja nicht. Allerdings ist es auch recht schwer, dafür ein Maß zu finden.

Viele Grüße
Th. Plaschke
Parent - By Lothar Jung Date 2023-11-24 15:03
Meines Erachtens optimieren folgende Maßnahmen die Geschwindigkeit von (Schach) Apps:

1. Linux als Betriebssystem, am praktischstem WSL2.
2. Auswahl einer schlanken GUI, am besten eine CLI Version.
3. Zuordnung von physischen Kernen auf die Engine.
4. Beendung nicht erforderlichen nebenläufigen Prozessen.

Dabei dürfte Arena oder Cutechess (CLI) auf Linux oder WSL2 die beste Wahl sein.
Die Maßnahmen könnten durchaus 15 % bis 20 % Geschwindigkeitssteigerung bringen.
Das sind bei 8 bis 16 Core CPUs die Leistung von 1 bis 3 Kernen. Daneben wird das freie RAM erhöht.
Up Topic Hauptforen / CSS-Forum / Feste Zuordnung von physikalischen Kernen

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill