Да, именованные вызовы будут работать для установки сходства потоков. Единственная проблема состоит в том, чтобы исправить номер потока и установить правильное сродство в правом потоке (вы можете попробовать использовать статическое планирование цикла for
для известного количества потоков).
Как я знаю, почти каждый openmp позволяет устанавливать сходство через окружение. Имя переменной окружения может быть различным (некоторое время назад оно не стандартизировалось).
Я использую страницу http://www.spec.org/omp2001/results/omp2001.html для поиска реализации openMP и поиска конкретного имени переменной среды. Сходство устанавливается в ~ половине результатов specOMP. В результатах также есть некоторые дополнительные параметры настройки производительности OpenMP.
например. Для компилятора Intel переменная
export KMP_AFFINITY=compact,0
Для компилятора солнца:
export SUNW_MP_PROCBIND=TRUE
Для gcc (pre-openmp 3.1)
export GOMP_CPU_AFFINITY=0-63
где 63 - максимальный номер ЦП (если считать от 0)
и более новый стандарт OpenMP, версия 3.1 определяет переменную среды OMP_PROC_BIND (см. Раздел 4.4), которая является стандартизированным способом установки соответствия в OpenMP. Использование:
export OMP_PROC_BIND=true