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 loop
pragma, 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
Paralelização automática e vetorização automática
Pragmadiretivas e as __pragma
palavras-chave e _Pragma