osg*_*sgx 14
是的,命名调用将用于设置线程关联.唯一的问题是修复线程号并在正确的线程中设置正确的亲和力(您可以尝试for对已知数量的线程使用循环的静态调度).
据我所知,几乎每个openmp都允许通过环境设置亲和力.环境变量的名称各不相同(前一段时间没有标准化).我使用http://www.spec.org/omp2001/results/omp2001.html页面来查找openMP实现,并将搜索特定的环境变量名称.亲和力设置在specOMP结果的一半左右.结果中还有一些额外的OpenMP性能调整设置.
例如,对于intel编译器,变量是
export KMP_AFFINITY=compact,0
Run Code Online (Sandbox Code Playgroud)
export SUNW_MP_PROCBIND=TRUE
Run Code Online (Sandbox Code Playgroud)
export GOMP_CPU_AFFINITY=0-63
Run Code Online (Sandbox Code Playgroud)
其中63是最大CPU数(从0开始计数)
和较新的OpenMP标准,版本3.1定义了环境变量OMP_PROC_BIND(见4.4节),其是在设置的OpenMP亲和力的标准化方式.用法是:
export OMP_PROC_BIND=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12585 次 |
| 最近记录: |