Share via


loop pragma

Controla cómo el paralelizador automático debe considerar el código del bucle o excluye un bucle de la consideración del vectorizador automático.

Sintaxis

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

Parámetros

hint_parallel(n)
Sugiere al compilador que este bucle se ejecute en paralelo en n subprocesos, donde n es un literal entero positivo o cero. Si n es cero, se usa el número máximo de subprocesos en tiempo de ejecución. Es una sugerencia para el compilador, no un comando. No hay ninguna garantía de que el bucle se va a paralelizar. Si el bucle tiene dependencias de datos o problemas estructurales, no se paralelizará. Por ejemplo, no se paraleliza si almacena en un escalar que se usa más allá del cuerpo del bucle.

El compilador omite esta opción a menos que se especifique el modificador del compilador /Qpar.

no_vector
De forma predeterminada, el vectorizador automático intenta vectorizar todos los bucles que evalúe de modo que se beneficien de él. Especifique esta directiva pragma para deshabilitar el vectorizador automático para el bucle que aparece detrás.

ivdep
Sugiere al compilador que omita las dependencias de vector de este bucle.

Comentarios

Para usar looppragma, colóquelo inmediatamente antes, no en, una definición de bucle. La directiva pragmasurte efecto para el ámbito del bucle que aparece detrás. Puede aplicar varias directivas pragma a un bucle, en cualquier orden, pero debe establecer cada una de ellas en una instrucción pragma diferente.

Consulte también

Paralelización automática y vectorización automática
Directivas pragma y las palabras clave __pragma y _Pragma