プログラムの実行中に同じ高優先度を設定しようとするために、このコードを使用しました。
CPU_SET(CPU_NUM, &cmask);
if (pthread_setaffinity_np(pid, sizeof(cmask), &cmask) < 0) {
LOG_ERROR("Could not set cpu affinity to core %d", CPU_NUM); goto exit_err;
}
errno = 0;
setpriority(PRIO_PROCESS, 0, -19);
このプログラムの目的は、一定の束 (80 バイトごと) の入力に対して計算を実行することです。
しかし、プログラムを実行すると、この計算にかかる時間は 30% から 150% まで変化します。
計算時間の値をプロットするとき、偏差が 10% から 15% のような非常に滑らかなグラフを待っていましたが、代わりに 40% を超えています!!!
CPUがプログラムの実行を他のプログラムと干渉しているかどうかを尋ねたいのですが、もしそうなら、CPUに特定のプログラムのみを強制的に実行させることができますか?
前もって感謝します !
PS私はまだ私の質問に答えることができるスレッドを見つけていません...
最も関連性の高いものは :) です: Linux はプロセスのグループ用にプロセッサを予約します (動的に)