Neben meiner Beteiligung an Boinc widme ich mich nun auch wieder eigenen Rechenprojekten. Aktuell beschäftige ich mich mit Linux (OpenSuse Leap), wo ich zusätzlich zu Boinc mein Fraktalprogramm in Aktion habe (Kalles Fraktaler 2, obwohl es ein Windoof-Programm ist, lasse ich es problemlos über wine laufen).
In Erwartung der Fertigstellung des Fraktalprogramms, das in der Regel auf sich warten lässt, plane ich, eine festgelegte Anzahl von CPU-Kernen dafür zu reservieren. Aufgrund seiner besonderen Rechenweise benötigt das Fraktalprogramm normalerweise 3-4 Fäden. Diese 4 Fäden sollen jeweils einem eigenen CPU-Kern zugewiesen werden, der nicht durch Hyperthreading von Boinc gestört werden soll. Sollte das Fraktalprogramm mehr Fäden benötigen, sollen entsprechend mehr Kerne zur Verfügung gestellt werden, die dann jedoch mit Boinc konkurrieren müssen.
Wie schaffe ich es, dass eine festgelegte Anzahl von Kernen exklusiv für das Fraktalprogramm reserviert wird, ohne dass Hyper-Threading von anderen Programmen genutzt wird? Das ist die eigentliche Knacknuss.
Kernfrage
-
Mistyickson
- Fingerzähler

- Beiträge: 1
- Registriert: 18.06.2024 10:30
Kernfrage
Zuletzt geändert von Mistyickson am 19.06.2024 02:32, insgesamt 1-mal geändert.
Jillian David geometry dash
-
gemini8
- Vereinsvorstand

- Beiträge: 6649
- Registriert: 31.05.2011 10:30
- Wohnort: Hannover
Re: Kernfrage
Ich meine, mich erinnern zu können, dass es bei der letzten 'Kernfrage' um Linux-Kernels ging. 
Aber zu deiner Frage:
Du kannst BOINC im BOINC Manager durch eine Prozentzahl erzählen, dass es auf dem Rechner nur eine bestimmte Anzahl von Kernen gibt. Da Linux die Threads rotiert, hättest du zwar eine feste Anzahl freier Threads, nicht aber bestimmte.
Die wiederum bekommst du, wenn du dein Fraktalprogramm mit Taskset an ihnen festbindest.
Alternativ solltest du BOINC bestimmte Threads zuweisen können, wodurch die Aufgaben auch nur diese Kerne nutzen sollten. (Dies habe ich selbst noch nicht ausprobiert, deshalb kann ich nicht sagen, ob es wirklich einfach so funktioniert.)
Aber zu deiner Frage:
Du kannst BOINC im BOINC Manager durch eine Prozentzahl erzählen, dass es auf dem Rechner nur eine bestimmte Anzahl von Kernen gibt. Da Linux die Threads rotiert, hättest du zwar eine feste Anzahl freier Threads, nicht aber bestimmte.
Die wiederum bekommst du, wenn du dein Fraktalprogramm mit Taskset an ihnen festbindest.
Alternativ solltest du BOINC bestimmte Threads zuweisen können, wodurch die Aufgaben auch nur diese Kerne nutzen sollten. (Dies habe ich selbst noch nicht ausprobiert, deshalb kann ich nicht sagen, ob es wirklich einfach so funktioniert.)



