3

/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 キャッシュを共有すると言えます。あまりにも...私はこの推測で正しいですか?

4

1 に答える 1