3

我在 SUN/Solaris 上运行 CC 编译器,我有超过 64 个由操作系统分配给不同内核的线程。我很想知道是否有方法可以在运行时获取不同线程的核心 ID?

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

4

2 回答 2

2

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

于 2012-07-16T12:28:16.903 回答
1

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

于 2012-07-16T11:31:10.227 回答