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 loop
pragma, 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
Pragmadirectivas y las __pragma
palabras clave y _Pragma