Partager via


boucle

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

#pragma loop( hint_parallel(n) )

#pragma loop( no_vector )

#pragma loop( ivdep )

Paramètres

  • hint_parallel( n )
    Indique au 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 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 d'une commande, et il n'existe aucune garantie que la boucle soit parallélisée. Si la boucle présente des dépendances de données ou des problèmes structurels, par exemple si la boucle stocke dans un élément scalaire utilisé au-delà du corps de la boucle, la boucle ne sera pas parallélisée.

    Le compilateur ignore cette option, à moins que le commutateur /Qpar du compilateur soit spécifié.

  • no_vector
    Par défaut, le vectoriseur automatique est activé et tente de vectoriser toutes les boucles considérées comme en tirant parti. Spécifiez ce pragma pour désactiver le vectoriseur automatique de la boucle qui le suit.

  • ivdep
    Indique au compilateur d'ignorer les dépendances vectorielles pour cette boucle. Doit être utilisé avec hint_parallel.

Notes

Pour utiliser le pragma loop, placez-le immédiatement avant la définition de la boucle, et non pas à l'intérieur de cette définition. Le pragma prend effet pour la portée de la boucle qui le suit. Vous pouvez appliquer plusieurs pragmas à une boucle, dans n'importe quel ordre, mais chacun doit être indiqué dans une instruction pragma distincte.

Voir aussi

Référence

Erreurs et avertissements d'Automobile-Parallélisation

Directives pragma et mot clé _Pragma