Portage de la partie turbulence sur GPU avec OpenACC
Environnement Nuwa
- /pgi/14.09
- OpenMPI 1.6.3 : /home/mogm/dir_OMPI/OPEN-MPI-1.6.3-PGI.14.9-MOFED24
- cuda6.5
Version de Méso-NH
- je suis parti de la version MNH-V5-1-3
- je développe dans la version USER /home/mogm/MNH-V5-1-3_ACC/src/ACC_MAX_TURB_INLINED
Stratégie de validation
- Cas-test pour la validation de mes développements :
- je suis parti du test HECTOR envoyé par Jean-Pierre C. le 17/11/2015
- /home/mogm/MNH-V5-1-3_ACC/MY_RUN/KTEST/HECTOR_GPU/
- je m'intéresse à l'étape 003_mesonh_step1
- j'ai gardé seulement 1 itération (pour limiter le temps d'exécution)
- Je compare les résultats ("residual divergence" écrit dans OUTPUT_LISTING1) obtenu avec ma version modifiée à ceux obtenu avec la version MNH-V5-1-3/MASTER
- résultat de référence :
residual divergence / 2 DT
4.7167835020656536E-018 located at
11
34
1
residual divergence / 2 DT
4.8253515902866578E-018 located at
78
3
1
ATTENTION : ce résultat de référence a changé plusieurs fois, sans que la version MASTER ne soit modifiée.
01/03/2016
- Compilation de ma version avec CUDA 7.5 + pgi14.09 :
- en conservant l'option "cuda6.5" dans le Rules.LXpgi.mk car "cuda7.5" n'est pas supporté par cette version du compilateur PGI
- les résultats du KTEST HECTOR_GPU avec 1 itération sont OK sur DEVICE et sur HOST.
- l'exécution est plus rapide qu'avec CUDA 6.5 : ~120s. vs ~170s.
- PGI_ACC_TIME et mpicollect fonctionnent avec cette version
- /home/mogm/MNH-V5-1-3_ACC/src/Rules.LXpgi.mk_cuda75_pgi149
- /home/mogm/MNH-V5-1-3_ACC/conf/profile_mesonh-LXpgiI4-MNH-V5-1-2-PGI149-ACC_MAX_TURB_INLINED_CUDA75-MPIAUTO-CUDA
16/03/2016
- Attention : les 'acc data create' prennent parfois un peu de temps, comptabilisé en "copyin time" par pgprof (quelques ms.)