rsnt_translations
56,430
edits
No edit summary |
No edit summary |
||
Line 264: | Line 264: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
On trouvera les dépendances de données en se posant les questions suivantes : | On trouvera les dépendances de données en se posant les questions suivantes : | ||
* Une itération en affecte-t-elle d'autres? | * Une itération en affecte-t-elle d'autres? | ||
* | ** par exemple, quand une , when generating the '''[https://fr.wikipedia.org/wiki/Suite_de_Fibonacci suite de Fibonacci]''' est générée, chaque nouvelle valeur dépend des deux valeurs qui la précèdent. Il est donc très difficile, sinon impossible, d'implémenter un parallélisme efficace. | ||
* | * L'accumulation des valeurs dans <code>sum</code> est-elle une dépendance? | ||
** Non, c'est une'''[https://en.wikipedia.org/wiki/Reduction_operator réduction]'''! Et les compilateurs modernes optimisent bien ce genre de réduction. | |||
* Est-ce que les itérations de boucle écrivent et lisent dans les mêmes vecteurs de sorte que Do loop iterations read from and write to the les valeurs sont utilisées ou écrasées par d'autres itérations? | |||
** Heureusement, ceci ne se produit pas dans le code ci-dessus. | |||
Maintenant que le code est analysé, nous pouvons ajouter des directives au compilateur. | Maintenant que le code est analysé, nous pouvons ajouter des directives au compilateur. | ||
[[OpenACC Tutorial - Introduction/fr|<- Page précédente, ''Introduction'']] | [[OpenACC Tutorial/fr|^- Retour au début du tutoriel]] | [[OpenACC Tutorial - Adding directives/fr|Page suivante, ''Ajouter des directives'' ->]] | [[OpenACC Tutorial - Introduction/fr|<- Page précédente, ''Introduction'']] | [[OpenACC Tutorial/fr|^- Retour au début du tutoriel]] | [[OpenACC Tutorial - Adding directives/fr|Page suivante, ''Ajouter des directives'' ->]] |