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 loop
pragmaimmé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 mots __pragma
_Pragma
clés