我试图根据 /proc/cpuinfo 为我的应用程序确定处理器关联规则,我的 redhat Linux 显示
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 ...
如果在我的应用程序中,我在 thread1 中使用 CPU_SET(0, &mask),在 thread2 中使用 CPU_SET(24, &mask),那么我可以说 thread1 和 thread2 将共享相同的 L1 缓存,当然也共享相同的 L2 缓存,太……我猜对了吗?