/proc/cpuinfo に従って、アプリケーションのプロセッサ アフィニティ ルールを決定しようとしました。
processor : 0 to 47 , means server has 48 processor unit
physical id : 0 to 3 , means server has 4 cpu sockets
cpu cores : 6 , means each socket has 6 cores
siblings : 12 , means each core has 2 hyperthreads
全体として、このサーバーには 4 * 6 * 2 = 48 のプロセッサ ユニットがあります。
私がやりたいのは、 sched_setaffinity 関数を使用することです。最初に、同じコア内のハイパースレッドを知りたいです。たとえば...
processor 0 : physical id:0,core id: 0 ...
processor 24 : physical id:0,core id: 0 ...
私のアプリケーションで、スレッド 1 で CPU_SET(0, &mask) を使用し、スレッド 2 で CPU_SET(24, &mask) を使用する場合、スレッド 1 とスレッド 2 は同じ L1 キャッシュを共有し、もちろん同じ L2 キャッシュを共有すると言えます。あまりにも...私はこの推測で正しいですか?