loop
Controles cómo el código de bucle debe considerarse por auto - parallelizer, o excluyen un bucle de cuenta por auto - vectorizer.
#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
Parámetros
hint_parallel(n)
Sugerencias al compilador que este bucle se debería ejecutar los subprocesos n , donde es un literal o cero n entero positivo.Si n es cero, el número máximo de subprocesos se utiliza en tiempo de ejecución.Esto es una sugerencia para el compilador, no comando, y no hay ninguna garantía de que el bucle se paralelizado.Si el bucle tiene dependencias de los datos, o el estructural problema- para el ejemplo, el bucle almacena un escalar que se utilice más allá del cuerpo - continuación de bucle que el bucle no se paralelizado.El compilador omite esta opción a menos que se especifique el modificador del compilador /Qpar .
no_vector
De forma predeterminada, el auto - vectorizer está activado e intentará vectorize todos los bucles que se evalúe como beneficiándose de.Especifique este pragma para deshabilitar el auto-vectorizer para el bucle que lo sigue.ivdep
Sugerencias al compilador que omita las dependencias de vector para este bucle.Utilice esto junto con hint_parallel.
Comentarios
Para utilizar la directiva pragma loop , póngalo inmediatamente antes) no en - uno de la definición del bucle.La pragma toma el efecto del ámbito del bucle que lo sigue.Puede aplicar las directivas pragma múltiples a un bucle, en cualquier orden, pero debe decir cada uno en una instrucción separada de pragma.