我在SUN / Solaris上运行CC编译器, 我有超过64个线程由OS分配给不同的核心。 我有兴趣知道是否有方法在运行时获取不同线程的核心ID?
我没有为这些线程设置亲和力,我使用psrset来创建处理器集。
答案 0 :(得分:2)
我找到了答案:Solaris上的getcpuid()返回核心ID(即使是超线程): 我已经测试过了,效果很好。 http://www.unix.com/man-page/all/3c/getcpuid/
答案 1 :(得分:1)
我不知道是否有特定于Solaris的系统调用,但您可以使用可移植的hwloc库及其hwloc_get_last_cpu_location
函数。