我在Linux上使用libnuma。我的线程应该知道它们正在运行的节点/核心。是否可以某种方式获取当前线程的节点/核心?我已经看过文档,但是没有找到这样的功能…
我找到了这个解决方案:
#include <stdio.h> #include <utmpx.h> int main(void) { printf("CPU: %d\n", sched_getcpu()); return 0; }
然后,如果需要cpu的节点,则可以使用numa.h:
int cpu = sched_getcpu(); int node = numa_node_of_cpu(cpu);