Как заставить поток или задачу OpenMP работать на определенном ядре - PullRequest
1 голос
/ 09 октября 2011

Есть ли способ запустить поток OMP или задачу на определенном ядре?
Я нашел this , перешел по ссылке, но не смог найти исходный код для его проверки.Также это решение Intel (я думаю).OMP поддерживает это сам?

1 Ответ

4 голосов
/ 09 октября 2011

Насколько я знаю, в OpemMP 3.0 все они являются расширениями, специфичными для производителя.

Например, GOMP (реализация GCC) учитывает переменную среды GOMP_CPU_AFFINITY для установки соответствия потоков.

В своей документации они приводят пример:

GOMP_CPU_AFFINITY="0 3 1-2 4-15:2"

Что они заявляют:

свяжет начальный поток с ЦП 0, второй с ЦП 3, третий на ЦП 1, четвертый на ЦП 2, пятый на ЦП 4, с шестого по с десятого на ЦП 6, 8, 10, 12 и 14 соответственно, а затем запустить присваивать обратно с начала списка. GOMP_CPU_AFFINITY = 0 привязывает все потоки к процессору 0

...