wiki:Modipsl_compil

Version 9 (modified by acosce, 11 years ago) (diff)

--

Compilation

Index?/Compilation



FCM

Certains modèles de l'IPSL utilisent l'outil FCM pour gérer la création de leur makefile (modèle LMDZ, modèle INCA ...). FCM n'est pas accessible par défaut sur les machines de calcul. Il est disponible sur les machines de l'IDRIS et du CCRT et vous devez l'ajouter à votre PATH :

# sur mercure, titane et curie
PATH=~p86ipsl/fcm/bin:$PATH
# sur brodie
PATH=/home/rech/psl/rpsl035/fcm/bin:$PATH
# sur vargas
PATH=/homegpfs/rech/psl/rpsl035/FCM/bin/fcm:$PATH




Création du Makefile

Les makefiles sont crée par un script ins_make lancé automatiquement à la fin de l'extraction de la configuration. Si on a besoin de régénérer les makefile, le script ins_make peut être utilise séparément. Les makefiles sont adaptés à la machine sur laquelle vous travaillez. Si votre machine n'est pas connue, on choisi un cible dans modipsl/util/AA_make.gdef en le specifiant avec l'argument optionlle -t cible. Les machines connues sont ceux de l'IDRIS, CCRT/TGCC, Ciclad et Obelix.

cd modipsl/util
./ins_make [-t cible]

La commande ins_make permet de créer un makefile pour la config. Dans notre exemple modipsl/config/IPSLCM5A/Makefile. Ce Makefile contrôle tous les makefiles des différents modèles utilisés. Une fois qu'il est créé vous n'avez pas besoin de le régénérer (sauf changement de machine ou d'emplacement de modipsl dans votre architecture).



Lancement de la compilation

La commande gmake permet de lancer la compilation depuis le répertoire config/.../
Par exemple pour IPSLCM5A (résolution par défaut soit ORCA2 et LMDZ 96x95x39) :

cd modipsl/config/IPSLCM5A/
gmake



Choix de la résolution de compilation

Suivant la configuration sur laquelle vous travaillez le Makefile peut vous proposer différentes résolutions. Pour les connaître vous devez regarder les différentes target (normalement en lettres majuscules) dans le fichier Makefile. Pour IPSLCM5A ce sont les suivantes :

  • ORCA2xLMD4443
  • ORCA2xLMD5655
  • ORCA2xLMD9671
  • ORCA2xLMD9695
  • ORCA2xLMD9695-L39
  • ORCA2xLMD144142
  • ORCA2xLMD144142-L39

Lorsque vous savez quelle résolution vous désirez vous pouvez alors lancer la compilation :

cd modipsl/config/IPSLCM5A/
gmake resolution_desirée

par exemple

gmake ORCA2xLMD144142-L39 

Petit truc : A la fin de la compilation le makefile crée un fichier .resol qui contiendra la résolution de la dernière compilation. Une fois ce fichier créé vous pouvez ensuite relancer les compilations juste avec la commande gmake vous n'êtes plus obligé de préciser la résolution.



Options de compilations de LMDZ

LMDZ propose les options de compilation suivantes :

makelmdz_fcm [options] -m arch exec
[-h]                       : manuel abrégé
[-d [[IMx]JMx]LM]          : IM, JM, LM sont les dims en x, y, z (def: $dim)
[-p PHYS]                  : compilation avec la physique libf/phyPHYS, (def: lmd)
[-prod / -dev / -debug]    : compilation en mode production (default) / developpement / debug .
[-c false/MPI1/MPI2]       : couplé océan : MPI1/MPI2/false (def: false)
[-v false/true]            : avec ou sans végétation (def: false)
[-chimie INCA/false]       : avec ou sans model de chimie INCA (def: false)
[-parallel none/mpi/omp/mpi_omp] : parallelisation (default: none) : mpi, openmp ou mixte mpi_openmp
[-g GRI]                   : conf. grille dans dyn3d/GRI_xy.h  (def: reg inclue un zoom)
[-io IO]                   : choix d'une librairie I/O, experts (def: ioipsl)
[-include INCLUDES]        : variables supplementaires pour include
[-cpp CPP_KEY]             : cle cpp supplementaires
[-adjnt]                   : adjoint, a remettre en route ...
[-filtre NOMFILTRE]        : prend le filtre dans libf/NOMFILTRE (def: filtrez)
[-link LINKS]              : liens optionels avec d'autres librairies
[-fcm_path path]           : chemin pour fcm (def: le chemin est suppose deja exister dans le PATH)
 -arch nom_arch            : nom de l'architecture cible
 exec                      : exécutable généré

Ces options sont utilisées dans le fichier config/IPSLCM5A/Makefile. Notez que par défaut on demande la compilation en mode mpi.

Spécificités de compilation suivant les machines



A qui signaler quand cela ne marche pas?

Si il y a un problème de compilation vous pouvez vous adresser au model manager. Il est indiqué lors de la commande

 ./model -h IPSLCM5A