Как можно контролировать время спин-блокировки Microsoft OpenMP?

OpenMP, используемый компилятором Intel, поддерживает переменную среды KMP_BLOCKTIME (документы) который, как я полагаю, контролирует время ожидания занятости (спин-блокировка), которую потоки будут тратить на ожидание новой работы (связанный документ утверждает, что по умолчанию это 200 мс).

OpenMP, используемый компилятором Gnu, поддерживает переменную окружения GOMP_SPINCOUNT (документы) который, как я полагаю, также контролирует детали реализации эквивалентной библиотеки (хотя, по-видимому, выражается в виде числа итераций, а не времени)

Мой вопрос: какие элементы управления (если есть) предоставляет Microsoft для управления этим параметром в OpenMP, используемом компилятором Microsoft? (Меня сейчас интересует VS2010.)

(Я хорошо знаю, что если бы параллелизм моей программы был полностью основан на OpenMP, у меня не было бы повода для беспокойства по этому поводу, но мой интерес вызван некоторыми следами vtune из большой сложной системы, которая также широко использует TBB.)

6

Решение

Microsoft Visual Studio 2010 SP1 и выше, похоже, поддерживают OMP_WAIT_POLICY, как показано в этом Статья базы знаний

установка OMP_WAIT_POLICY в Пассивная действительно исправляет проблему при компиляции с Visual Studio 2013.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]