rsnt_translations
56,430
edits
(Created page with "Le programme est exécuté et on obtient un tableau chronologique du déroulement (voir l'image). On remarque que le transfert de données entre le départ et l'arrivée o...") |
(Created page with "== La directive <tt>parallel loop</tt> == Avec la directive <tt>kernels</tt>, c'est le compilateur qui fait toute l'analyse; ceci est une approche ''descriptive'' pour port...") |
||
Line 268: | Line 268: | ||
Le programme est exécuté et on obtient un tableau chronologique du déroulement (voir l'image). On remarque que le transfert de données entre le départ et l'arrivée occupe la plus grande partie du temps d'exécution, ce qui est fréquent quand du code est porté d'un CPU vers un GPU. Nous verrons comment ceci peut être amélioré dans la prochaine partie, [https://docs.computecanada.ca/wiki/OpenACC_Tutorial_-_Data_movement/fr Mouvement des données]. | Le programme est exécuté et on obtient un tableau chronologique du déroulement (voir l'image). On remarque que le transfert de données entre le départ et l'arrivée occupe la plus grande partie du temps d'exécution, ce qui est fréquent quand du code est porté d'un CPU vers un GPU. Nous verrons comment ceci peut être amélioré dans la prochaine partie, [https://docs.computecanada.ca/wiki/OpenACC_Tutorial_-_Data_movement/fr Mouvement des données]. | ||
== | == La directive <tt>parallel loop</tt> == | ||
Avec la directive <tt>kernels</tt>, c'est le compilateur qui fait toute l'analyse; ceci est une approche ''descriptive'' pour porter du code. OpenACC offre aussi une approche ''prescriptive'' avec la directive <tt>parallel</tt> qui peut être combinée à la directive <tt>loop</tt> ainsi : | |||
<syntaxhighlight lang="cpp" line highlight="1"> | <syntaxhighlight lang="cpp" line highlight="1"> | ||
#pragma acc parallel loop | #pragma acc parallel loop |