loop pragma

Управляет тем, как код цикла должен рассматриваться автоматическим параллелизатором или исключает цикл из рассмотрения автоматическим векторизатором.

Синтаксис

#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )

Параметры

hint_parallel(n)
Указание компилятору, что этот цикл должен быть параллелизован между n потоками, где n является положительным целым литералом или нулем. Если значение n равно нулю, максимальное количество потоков используется во время выполнения. Это указание компилятору, а не команде. Нет никакой гарантии, что цикл будет параллелизован. Если цикл имеет зависимости данных или структурные проблемы, он не будет параллелизирован. Например, он не параллелизируется, если он хранит скаляр, используемый за пределами тела цикла.

Компилятор игнорирует этот параметр, если параметр компилятора /Qpar не указан.

no_vector
По умолчанию автоматический векторизатор пытается векторизировать все циклы, которые он оценивает, может воспользоваться им. Укажите это pragma , чтобы отключить векторизатор автовектора для следующего цикла.

ivdep
Указание компилятору игнорировать зависимости векторов для этого цикла.

Замечания

Чтобы использовать его looppragma, поместите его непосредственно перед определением цикла, а не в. Вступает pragma в силу для область цикла, который следует за ним. В любом порядке можно применить несколько pragma директив к циклу, но необходимо указать каждый из них в отдельной pragma инструкции.

См. также

Автоматическая параллелизация и автовекторизация
Директивы Pragma и __pragma_Pragma ключевое слово