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.

Vea también

Referencia

Errores y advertencias de Auto-Parallelization

Directivas de pragma y la palabra clave de __Pragma