在Openmp中有没有办法找出主线程分配到的地方?

In Openmp is there a way to find out the place to which the master thread is assigned?

利用openmp的线程关联机制,主线程被分配到主线程的父线程所在的地方运行(这里的地方集合由OMP_PLACES指定)。据我了解,这实际上意味着 OS 决定了主线程执行的位置。有没有办法从你的 C++ 代码中找到这个主线程绑定到的实际位置或硬件线程?谢谢

omp_get_place_num()怎么样? OpenMP specification 状态:

The omp_get_place_num routine returns the place number of the place to which the encountering thread is bound.

另一种可能性是将 OMP_DISPLAY_AFFINITY 环境变量设置为 true,这将导致显示关联信息。