OpenMP和CPU相关性

OpenMP and CPU affinity

本文关键字:相关性 CPU OpenMP      更新时间:2023-10-16

sched_setaffinitypthread_attr_setaffinity_np是否可以在OpenMP下设置线程亲和性?

相关:CPU Affinity

是的,命名调用可以设置线程关联。唯一的问题是固定线程数,并设置正确的亲和在正确的线程(你可以尝试使用for循环的静态调度已知的线程数)。

据我所知,几乎每个openmp都允许通过环境设置亲和性。环境变量的名称各不相同(不久前还没有标准化)。我使用http://www.spec.org/omp2001/results/omp2001.html页面来查找openMP实现,并将搜索特定的环境变量名称。大约一半的specOMP结果设置了亲和性。在结果中也有一些额外的OpenMP性能调优设置。

。对于intel编译器,变量是

 export KMP_AFFINITY=compact,0

对于sun编译器:

 export SUNW_MP_PROCBIND=TRUE

gcc (pre-openmp 3.1)

 export GOMP_CPU_AFFINITY=0-63

其中63为最大CPU数(从0开始计算)

更新的OpenMP标准版本3.1定义了环境变量OMP_PROC_BIND(见4.4节),这是OpenMP中设置亲和性的标准化方式。用法是:

 export OMP_PROC_BIND=true