在运行时找出特定线程的CPU核心

时间:2012-07-16 11:11:45

标签: c++ c runtime core cc

我在SUN / Solaris上运行CC编译器, 我有超过64个线程由OS分配给不同的核心。 我有兴趣知道是否有方法在运行时获取不同线程的核心ID?

我没有为这些线程设置亲和力,我使用psrset来创建处理器集。

2 个答案:

答案 0 :(得分:2)

我找到了答案:Solaris上的getcpuid()返回核心ID(即使是超线程): 我已经测试过了,效果很好。 http://www.unix.com/man-page/all/3c/getcpuid/

答案 1 :(得分:1)

我不知道是否有特定于Solaris的系统调用,但您可以使用可移植的hwloc库及其hwloc_get_last_cpu_location函数。