OpenMP и CPU сходство - PullRequest
       10

OpenMP и CPU сходство

8 голосов
/ 30 ноября 2011

Будет ли sched_setaffinity или pthread_attr_setaffinity_np работать, чтобы установить сродство потока в OpenMP?

Связано: Сродство ЦП

1 Ответ

14 голосов
/ 30 ноября 2011

Да, именованные вызовы будут работать для установки сходства потоков. Единственная проблема состоит в том, чтобы исправить номер потока и установить правильное сродство в правом потоке (вы можете попробовать использовать статическое планирование цикла 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...