Compartilhar via


loop pragma

Controla como o código de loop deverá ser considerado pelo paralelizador automático e/ou exclui um loop de ser considerado pelo vetorizador automático.

Sintaxe

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

Parâmetros

hint_parallel(n)
Indica para o compilador que esse loop deverá ser paralelizado por threads n, em que n é um literal de inteiro positivo ou zero. Se n for zero, o número máximo de threads será usado em tempo de execução. É uma dica para o compilador, não para um comando. Não há garantia de que o loop será paralelizado. Se o loop tiver dependências de dados ou problemas estruturais, ele não será paralelizado. Por exemplo, ele não será paralelizado se armazenar em um escalar usado além do corpo do loop.

O compilador ignorará esta opção, a não ser que a opção de compilador /Qpar seja especificada.

no_vector
Por padrão, o vetorizador automático tenta vetorizar todos os loops que ele avalia que podem se beneficiar disso. Especifique este pragma para desabilitar o vetorizador automático para o loop que se segue.

ivdep
Uma dica para o compilador deverá ignorar as dependências de vetor para esse loop.

Comentários

Para usar o looppragma, coloque-o imediatamente antes, não dentro, de uma definição de loop. O pragma entra em vigor para o escopo do loop que se segue a ele. Você pode aplicar várias diretivas pragma a um loop, em qualquer ordem, mas deve declarar cada um em uma instrução pragma separada.

Confira também

Auto-paralelização e auto-vetorização
Diretivas do Pragma e as palavras-chave do __pragma e _Pragma