Aller au contenu. | Aller à la navigation

Outils personnels
Se connecter
Sections
Vous êtes ici : Accueil Membres Laurent Fairhead Couplé options de compilation agressives

Couplé options de compilation agressives

Test du couplé en utilisant les options de compilation "agressives"

 

On teste les options

-O3 -axAVX,SSE4.2 -fp-model fast=2

du compilateur fortran sur curie avec la config IPSLCM6.0.7-LR r3078

Mise en place:

Inclusion des options dans les différents Makefile:

  • util/AA_make.gdef
    remplacer:
    #-Q- curie  F_O = -DCPP_PARA -O3 $(F_D) $(F_P) -I$(MODDIR) -module $(MODDIR) -fp-model precise
    
    par
    #-Q- curie  F_O = -DCPP_PARA -O3 -axAVX,SSE4.2 $(F_D) $(F_P) -I$(MODDIR) -module $(MODDIR) -fp-model fast=2
  •  oasis3-mct/util/make_dir/make.bullx.curie*
    remplacer
    F90FLAGS_1  = -O2 -xAVX -I.
    par
    F90FLAGS_1  = -O3 -axAVX,SSE4.2 -fp-model fast=2 -I.
  • modeles/LMDZ/arch/arch-X64_CURIE.fcm
    remplacer
    %BASE_FFLAGS         -i4 -r8 -auto -align all -I$(MKL_INC_DIR) -I$(MKL_INC_DIR)/intel64/lp64 -fp-model strict
    %PROD_FFLAGS         -O2
    par
    %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
  • modeles/ORCHIDEE/arch/arch-X64_CURIE.fcm
    remplacer
    %BASE_FFLAGS         -i4 -r8 -auto -align all -fp-model precise 
    %PROD_FFLAGS         -O3
    par
    %BASE_FFLAGS         -i4 -r8 -auto -align all -fp-model fast=2 
    %PROD_FFLAGS         -O3 -axAVX,SSE4.2
  • modeles/NEMOGCM/ARCH/arch-X64_CURIE.fcm
    remplacer
    %FCFLAGS             -i4 -r8 -O3 -fp-model precise
    par
    %FCFLAGS             -i4 -r8 -O3 -axAVX,SSE4.2 -fp-model fast=2
  • config/IPSLCM6/SOURCES/NEMO/arch-X64_CURIE.fcm:
    remplacer
    %FCFLAGS             -i4 -r8 -O3 -fp-model precise
    par
    %FCFLAGS             -i4 -r8 -O3 -axAVX,SSE4.2 -fp-model fast=2
  • modeles/XIOS/arch/arch-X64_CURIE.fcm (peut-être pas nécessaire)
    remplacer
    %PROD_FFLAGS    -O3
    par
    %PROD_FFLAGS    -O3 -axAVX,SSE4.2 -fp-model fast=2


     

Tests avec fortran/intel/14.0.3.174

C'est la version par défaut du compilateur au 06/01/2017

Installation dans:  /ccc/cont003/home/gencmip6/p86fair/IPSLCM6.0.7-LR.testcompil/modipsl.14.03/

Lancement de 10 ans de CM607-LR-pdCtrl-opt14 

temps d'exécution par an: 

real CPU / an
elapsed / an
 9714  2h42m

Pour CM607-LR-pdCtrl-01cont, on a avec le même environnement:

real CPU / an
elapsed / an
 10620  2h58m

 

Tests avec fortran/intel/16.0.3.210

Installation dans: /ccc/cont003/home/gencmip6/p86fair/IPSLCM6.0.7-LR.testcompil/modipsl.16.0.3

Charger le nouveau environnement intel pour la compilation et l'exécution (à modifier quelque part dans libIGCM_sys/libIGCM_sys_curie.ksh et .atlas_env_netcdf4.3.3.1_hdf5_parallel_curie_ksh) :

module unload nco/4.4.8
module unload netcdf/4.3.3.1_hdf5_parallel
module unload intel/14.0.3.174
module load intel/16.0.3.210
module load netcdf/4.3.3.1_hdf5_parallel

temps d'exécution par an: 

real CPU / an
elapsed / an
 9569  2h40m

L'équilibrage donné par lucia

 

Tests avec fortran/intel/17.0.2.174 (juin 2017)

On reprend les tests à partir du modèle IPSLCM6.0.10-LR en faisant tourner le couplé complet 20 à 30 ans. On lance 3 simulations (répertoire de base /ccc/cont003/home/gencmip6/p86fair/IPSLCM6.0.10-LRtestcompil) :

  1. une dans l'environnement intel/14.0.3.174 avec les options de compilations habituelles (répertoire .../modipsl.14.0.3): CM6010-LR-pdCtrl-ref
  2. une dans l'environnement intel/17.0.2.174 avec les options de compilations habituelles (répertoire .../modipsl.17.0.2): CM6010-LR-pdCtrl-ref-c17
  3. une dans l'environnement intel/17.0.2.174 avec les options de compilations agressives(répertoire .../modipsl.17.0.2.optiim): CM6010-LR-pdCtrl-opt-c17

 

Pour charger l'environnement intel 17.0.2 pour la compilation et l'exécution, il y a besoin de faire:

module unload python/2.7.8
module unload nco/4.4.8
module unload netcdf/4.3.3.1_hdf5_parallel
module unload intel/14.0.3.174
module unload c/intel/14.0.3.174
module unload c++/intel/14.0.3.174
module unload fortran/intel/14.0.3.174
module unload mkl/17.0.2.174
module load intel/17.0.2.174
module load c++/intel/17.0.2.174
module load fortran/intel/17.0.2.174
module load c/intel/17.0.2.174
module load netcdf/4.3.3.1_hdf5_parallel
module load nco
module load cdo/1.6.7_netcdf-4.3.2_hdf5

Temps d'exécution par an:

CM6010-LR-pdCtrl-ref

real CPU / an
elapsed / an
 6500s 1h49m

CM6010-LR-pdCtrl-ref-c17

real CPU / an
elapsed / an
 6300s 1h44m

CM6010-LR-pdCtrl-opt-c17

real CPU / an
elapsed / an
 5900s 1h38m

L'intermonitoring des 3 simulations

Conclusions:
Les simulations 14 et 17 standards se superposent exactement mais contrairement aux tests précédents effectués avec des versions du code du début de l'année et l'environnement intel/16.0.3.210 qui montraient des trajectoires différentes pour les variables issues d'ORCHIDEE, les trajectoires des modèles actuels ne semblent pas diverger quand on utilise les options de compilations "aggressives". L'utilisation de ces options permet de gagner 5 à 6% de temps elapsed sur le modèle couplé soit d'effectuer 15 ans de simulation couplé en une journée plutôt que 14.

 

 

Ajouter un commentaire

You can add a comment by filling out the form below. Plain text formatting. Comments are moderated.

Enter the word