Ich verwende Ubuntu 20.04 und arbeite an der Leistungsoptimierung einiger CFD-Codes. Wenn ich meinen Code zeitlich kontrolliere, um schnell Feedback darüber zu erhalten, ob eine Änderung von Vorteil ist, gibt es aufgrund von Hintergrundprozessen oft recht große Abweichungen von Ausführung zu Ausführung.
Da der Code alle verfügbaren Threads nutzt, führt die Belastung eines Threads mit Hintergrundaufgaben dazu, dass alle anderen warten müssen.
Meine Frage ist nun, ob es eine schnelle und einfache Möglichkeit gibt, Hintergrund-/nicht unbedingt erforderliche Aufgaben vorübergehend anzuhalten und mein System so in eine Art Benchmark-Modus zu versetzen. Bash-Skripte, Pakete, integrierte Optionen, alles ist willkommen.
Antwort1
Eine Möglichkeit besteht darin, das System auf einen Mehrbenutzer-Betrieb umzustellen (also ohne grafische Sitzung) und so die Anzahl der laufenden Prozesse auf etwa 50 zu reduzieren:
sudo systemctl isolate multi-user.target
oder sogar auf Einzelbenutzer umstellen (es werden etwa 10 Prozesse ausgeführt)
sudo systemctl isolate runlevel1.target
# Enter
su -l your-user-name
Und führen Sie dann Ihre Anwendung auf diesen Runleveln aus.
Wenn der Benchmark beendet ist, wechseln Sie zurück zur grafischen Sitzung durch
sudo systemctl isolate graphical.target