私は Ubuntu 20.04 を使用しており、CFD コードのパフォーマンス最適化に取り組んでいます。変更が有益かどうかの迅速なフィードバックを得るためにコードの時間を計測すると、バックグラウンド プロセスが起動するため、実行ごとにかなり大きな差異が生じることがよくあります。
コードは利用可能なすべてのスレッドを使用しているため、いずれかのスレッドにバックグラウンド タスクの負荷がかかると、他のすべてのスレッドが待機状態になります。
ここで質問なのですが、バックグラウンド/重要でないタスクを一時的に停止して、システムを一種のベンチマーク モードにする簡単な方法があるかどうかです。Bash スクリプト、パッケージ、組み込みオプションなど、何でも結構です。
答え1
方法の 1 つは、システムをマルチユーザー ターゲット (つまり、グラフィカル セッションなし) に切り替えて、実行中のプロセスを約 50 に減らすことです。
sudo systemctl isolate multi-user.target
またはシングルユーザーに切り替えることもできます(約10個のプロセスが実行されます)
sudo systemctl isolate runlevel1.target
# Enter
su -l your-user-name
そして、これらのランレベルでアプリケーションを実行します。
ベンチマークが終了したら、次の方法でグラフィカルセッションに戻ります。
sudo systemctl isolate graphical.target