loop pragma

Contrôle la façon dont le code de boucle doit être considéré par le paralléliseur automatique ou exclut une boucle de la considération par le vectoriseur automatique.

Syntaxe

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

Paramètres

hint_parallel(n)
Indicateur pour le compilateur que cette boucle doit être parallélisée sur n threads, où n est un littéral entier positif ou zéro. Si n est égal à zéro, le nombre maximal de threads est utilisé au moment de l’exécution. Il s’agit d’un indicateur pour le compilateur, et non pour une commande. Il n’existe aucune garantie que la boucle sera parallélisée. Si la boucle a des dépendances de données ou des problèmes structurels, elle ne sera pas parallélisée. Par exemple, il n’est pas parallélisé s’il stocke sur un scalaire utilisé au-delà du corps de la boucle.

Le compilateur ignore cette option, sauf si le commutateur du /Qpar compilateur est spécifié.

no_vector
Par défaut, le vectoriseur automatique tente de vectoriser toutes les boucles qu’il évalue peut tirer parti de celui-ci. Spécifiez cette option pragma pour désactiver le vectoriseur automatique pour la boucle qui suit.

ivdep
Conseil au compilateur d’ignorer les dépendances vectorielles pour cette boucle.

Notes

Pour utiliser le , placez-le looppragmaimmédiatement avant, pas dans, une définition de boucle. Prend pragma effet pour l’étendue de la boucle qui la suit. Vous pouvez appliquer plusieurs pragma directives à une boucle, dans n’importe quel ordre, mais vous devez l’indiquer dans une instruction distincte pragma .

Voir aussi

Parallélisation automatique et vectorisation automatique
Directives pragma et les __pragma_Pragma mot clé