38,760
edits
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 19: | Line 19: | ||
Pourquoi est-ce important de connaitre les points critiques dans le code? | Pourquoi est-ce important de connaitre les points critiques dans le code? | ||
D'après la loi d'Amdahl, paralléliser les routines qui exigent le plus de temps d'exécution (les points critiques) produit le plus d'impact. | D'après la loi d'Amdahl, paralléliser les routines qui exigent le plus de temps d'exécution (les points critiques) produit le plus d'impact. | ||
== Préparer le code pour l'exercice == | == Préparer le code pour l'exercice == | ||
Pour notre exemple, nous utilisons du code provenant de [https://github.com/calculquebec/cq-formation-openacc ces dépôts]. Téléchargez les fichiers et utilisez les répertoires ''cpp'' ou ''f90''. Le but de l'exercice est de compiler et lier le code et d'obtenir un exécutable que nous profilerons. | Pour notre exemple, nous utilisons du code provenant de [https://github.com/calculquebec/cq-formation-openacc ces dépôts]. Téléchargez les fichiers et utilisez les répertoires ''cpp'' ou ''f90''. Le but de l'exercice est de compiler et lier le code et d'obtenir un exécutable que nous profilerons. | ||
Line 42: | Line 43: | ||
After the executable is created, we are going to profile that code. | After the executable is created, we are going to profile that code. | ||
{{Callout | {{Callout | ||
|title=Choix du profileur | |title=Choix du profileur | ||
Line 51: | Line 53: | ||
* NVPROF : version ligne de commande du NVIDIA Visual Profiler | * NVPROF : version ligne de commande du NVIDIA Visual Profiler | ||
}} | }} | ||
=== PGPROF Profiler === | === PGPROF Profiler === | ||
Line 84: | Line 85: | ||
======== Data collected at 100Hz frequency | ======== Data collected at 100Hz frequency | ||
}} | }} | ||
== Compiler Feedback == | == Compiler Feedback == | ||
Before working on the routine, we need to understand what the compiler is actually doing by asking ourselves the following questions: | Before working on the routine, we need to understand what the compiler is actually doing by asking ourselves the following questions: | ||
Line 142: | Line 142: | ||
pgc++ CXXFLAGS=-fast -Minfo=all,intensity,ccff LDFLAGS=-fast main.o -o cg.x -fast | pgc++ CXXFLAGS=-fast -Minfo=all,intensity,ccff LDFLAGS=-fast main.o -o cg.x -fast | ||
}} | }} | ||
== Computational Intensity == | == Computational Intensity == | ||
Computational Intensity of a loop is a measure of how much work is being done compared to memory operations. | Computational Intensity of a loop is a measure of how much work is being done compared to memory operations. |