Travail sur le changement de compilateur sur Ada / Curie
Tests des changements de compilateurs ada et curie sur LMDZ bucket
L'IDRIS recommande l'environnement intel/2016.2
Le TGCC recommande l'environnement fortran/intel/16.0.2.181
Tests à faire
Ada:
Dans le framework de la validation de la testing (lancement d'un bench LMDZ bucket, nouvelle physique, 48x32x19, mode debug, en séquentiel/MPI/OMP/MPI_OMP et comparaison des restart de chaque mode)
- faire une simul de référence intel/2013.0 fait, RAS
- faire une simul de référence intel/2016.2 fait, RAS
- comparer les résultats:
Fait: les restarts sont rigoureusement identiques (au sens cmp) entre les différentes simulations faites avec les deux compilos.
Les restarts (dynamique et physique) issus des simulations ADACOMP01 et ADA2016COMP01, décrites ci-dessous, sont eux aussi rigoureusement identiques (au sens cmp) pour la 1ère année, alors que l'environnement d'exécution est différent.
Curie:
- faire une simul de référence fortran/intel/14.0.3.174
le révision 1488 ne donne pas un même startphy en MPI_OMP - faire une simul de référence fortran/intel/16.0.2.181
besoin de faire:module unload nco/4.4.8 module unload netcdf/4.3.3.1_hdf5_parallel module unload fortran module unload mkl module unload idb module load mkl/16.0.2.181 module load fortran/intel/16.0.2.181 module load c/intel/16.0.2.181 module load c++/intel/16.0.2.181 module load netcdf/4.3.3.1_hdf5_parallel module load nco/4.4.8
pour changer de version de fortran - comparer les résultats
Tests sur les options de compilations à utiliser
Les options à tester:
- mcmodel= medium
- -fp-model
- -openmp-threadprivate compat
Travail sur ada:
Lancement d'une série de simulations CLIM de 5 ans LMDZ bucket (96x95x39), NPv5.5 avec les différentes options à tester.
Récupération de LMDZOR_v6: LMDZ r2508, ORCHIDEE r3171, XIOS 1.0
Essais avec intel/2013.1
ADACOMP01:
Simulation de référence
- environnement intel/2013.0
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all %PROD_FFLAGS -O2 -ip -fp-model strict -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2290s | 38m |
ADACOMP02:
- options de compilation:
mcmodel=medium
- temps d'exécution par an:
real CPU / an
elapsed / an 2294s 38m
ADACOMP03:
- options de compilation:
-fp-model precise, à noter que IOIPSL est déjà compilé en -fp-model precise
- temps d'exécution par an:
real CPU / an
elapsed / an
L'exécution en mode prod ne rend jamais la main ....En lançant xios en mode attaché, le modèle va bien à la fin (Everything is cool) mais ne rend pas la main . En prenant les options fast=1 ou 2, on a le même résultat.
Essais avec intel/2013.1
Problème avec la lecture de l'ozone, on prend l'ozone analytique
ADA1COMP01:
Simulation de référence
- environnement intel/2013.1
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model strict %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2600s | 43m |
ADA1COMP02:
- options de compilation:
-mcmodel=medium
- temps d'exécution par an:
real CPU / an
elapsed / an
ADA1COMP03:
- options de compilation:
-mcmodel=large -fp-model precise
- temps d'exécution par an:
real CPU / an
elapsed / an
ne rend pas la main non plus ...
Essais avec intel/2016.2
Vu les problèmes de "non-retour" des jobs, on passe directement à l'environnement intel/2016.2 pour la compilation et pour l'exécution.
ADA2016COMP01:
Simulation de référence
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model strict %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2175s | 36m |
ADA2016COMP02:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model strict %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2166s | 36m |
ADA2016COMP03:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model precise %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2123s | 35m |
ADA2016COMP04:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model fast=1 %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2018s | 33.5m |
ADA2016COMP05:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model fast=2 %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2015s | 33.5m |
ADA2016COMP06:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model strict -openmp-threadprivate compat %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2147s | 35.5m |
ADA2016COMP07:
On prend les options de compilation de curie
- options de compilation:
%BASE_FFLAGS -i4 -r8 -auto -align all -fp-model strict %PROD_FFLAGS -O2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2158s | 36m |
ADA2016COMP08:
On teste les options à changer toutes ensemble
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model precise -openmp-threadprivate compat %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
2086s | 35m |
ADA2016COMP09:
On bascule sur du -O3
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model precise -openmp-threadprivate compat %PROD_FFLAGS -O3 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
Le modèle plante dans regr12_conserv
...
Comparer les atlas créés
Lancer une deuxième série LMDZOR de 5 ans même résolution mais peut-être pas toutes les options
Travail sur curie:
Tests de performances
Sur Ada
Sur ada, on teste LMDZ testing r2546 en résolution 144x142x79 toujours en bucket avec IOIPSL/XIOS avec l'environnement intel/2016.2
ADA2016COMP12:
simulation de contrôle
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=large -integer-size 32 -real-size 64 -align all -fp-model strict %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
12 885 | 3h35m |
ADA2016COMP13:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model precise -qopenmp-threadprivate compat %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
plante
ADA2016COMP13A:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model precise %PROD_FFLAGS -O2 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
12900 |
ADA2016COMP14:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model precise -qopenmp-threadprivate compat %PROD_FFLAGS -O2 -ip
- temps d'exécution par an:
real CPU / an | elapsed / an |
ADA2016COMP15:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model precise %PROD_FFLAGS -O3 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
12300 | 3h25m |
ADA2016COMP16:
- options de compilation:
%BASE_FFLAGS -auto -recursive -mcmodel=medium -integer-size 32 -real-size 64 -align all -fp-model fast=2 %PROD_FFLAGS -O3 -ip -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
11700 | 3h15m |
Sur Curie
Sur curie, on teste LMDZ testing r2546 en résolution 144x142x79 toujours en bucket avec IOIPSL/XIOS
Atlas des différences entre les options de compilations
CURCOMP01:
simulation de contrôle
- compilateur: fortran/intel/14.0.3.174
- options de compilation:
%BASE_FFLAGS -i4 -r8 -auto -align all -I$(MKL_INC_DIR) -I$(MKL_INC_DIR)/intel64/lp64 -fp-model strict %PROD_FFLAGS -O2
- temps d'exécution par an:
real CPU / an | elapsed / an |
13537 | 3h45m |
CURCOMP02:
simulation de contrôle
- compilateur: fortran/intel/16.0.2.181
- options de compilation:
%BASE_FFLAGS -i4 -r8 -auto -align all -I$(MKL_INC_DIR) -I$(MKL_INC_DIR)/intel64/lp64 -fp-model strict %PROD_FFLAGS -O2
- temps d'exécution par an:
real CPU / an | elapsed / an |
13055 | 3h37m |
CURCOMP03:
simulation de contrôle
- compilateur: fortran/intel/16.0.2.181
- options de compilation:
%BASE_FFLAGS -i4 -r8 -auto -align all -I$(MKL_INC_DIR) -I$(MKL_INC_DIR)/intel64/lp64 -fp-model fast=2 %PROD_FFLAGS -O3 -axAVX,SSE4.2
- temps d'exécution par an:
real CPU / an | elapsed / an |
12153 | 3h22m |