OpenACC Tutorial - Adding directives/fr: Difference between revisions

Created page with "Pour utiliser cette directive dans notre exemple du produit matrice-vecteur, nous avons besoin des clauses <tt>private</tt> et <tt>reduction</tt> pour gérer le flux des donn..."
(Created page with "Comme <tt>parallel loop</tt> est une directive ''prescriptive'', le compilateur est forcé d'exécuter la boucle en parallèle. Ceci signifie que la clause <tt>independent</tt...")
(Created page with "Pour utiliser cette directive dans notre exemple du produit matrice-vecteur, nous avons besoin des clauses <tt>private</tt> et <tt>reduction</tt> pour gérer le flux des donn...")
Line 279: Line 279:
Comme <tt>parallel loop</tt> est une directive ''prescriptive'', le compilateur est forcé d'exécuter la boucle en parallèle. Ceci signifie que la clause <tt>independent</tt> mentionnée plus haut est implicite à l'intérieur d'une zone parallèle.  
Comme <tt>parallel loop</tt> est une directive ''prescriptive'', le compilateur est forcé d'exécuter la boucle en parallèle. Ceci signifie que la clause <tt>independent</tt> mentionnée plus haut est implicite à l'intérieur d'une zone parallèle.  


For reasons that we explain below, in order to use this directive in the matrix-vector product example, we need to introduce additional clauses used to manage the scope of data. The <tt>private</tt> and <tt>reduction</tt> clauses control how the data flows through a parallel region.  
Pour utiliser cette directive dans notre exemple du produit matrice-vecteur, nous avons besoin des clauses <tt>private</tt> et <tt>reduction</tt> pour gérer le flux des données dans la zone parallèle.  
* With the <tt>private</tt> clause, a copy of the variable is made for each loop iteration, making the value of the variable independent from other iterations.  
* Avec la clause <tt>private</tt>, une copie de la variable est faite pour chaque itération de la boucle; la valeur de la variable est ainsi indépendante des autres itérations.  
* With the <tt>reduction</tt> clause, the values of a variable in each iteration will be ''reduced'' to a single value. It supports addition (+), multiplication (*), maximum (max), minimum (min), among other operations.  
* Avec la clause <tt>reduction</tt> , les valeurs de la variable dans chaque itération est ''réduite'' à une valeur unique. La clause s'utilise entre autres avec les opérations addition (+), multiplication (*), maximum (max) et minimum (min).  
These clauses were not required with the <tt>kernels</tt> directive, because the <tt>kernels</tt> directive handles this for you.  
Ces clauses ne sont pas nécessaires avec la directive <tt>kernels</tt> puisque celle-ci fait le travail pour vous.  


Going back to the matrix-vector multiplication example, the corresponding code with the <tt>parallel loop</tt> directive would look like this:
Going back to the matrix-vector multiplication example, the corresponding code with the <tt>parallel loop</tt> directive would look like this:
rsnt_translations
56,430

edits