mercredi 14 août 2013

Mise en oeuvre des modèles météo WRF-ARW et WRF-NMM - Partie 2 - Obtenir le logiciel

Dans cette seconde partie de ce tutorial WRF, nous aborderons les pré-requis pour WRF, puis nous détaillerons quels sont les fichiers à télécharger pour WRF ainsi que les packages et dépendances à installer sur votre système.

Pré-requis système


WRF peut être installé sur à peu près nimporte quel système Unix, du simple PC sous Linux au gros calculateur IBM sous AIX en passant par les clusters de plusieurs dizaines de machines. Dans ce document, nous couvrirons uniquement la procédure pour un PC sous Linux.

Pour les utilisateurs Windows, il est possible d'utiliser un logiciel de virtualisation pour simplifier l'installation sans quitter votre environnement Windows. Deux solutions gratuites existent : VirtualBox et VMWare Player. Cette dernière est toutefois limitée à 4 coeurs, pour en exploiter davantage il faudra investir dans la version Workstation qui est assez onéreuse. VirtualBox n'a pas cette limitation en restant gratuit.

Voici les choix matériels qui me semblent raisonnables pour débuter, sachant que le principe, si vous avez le budget, est "plus c'est puissant mieux c'est" :
  • Processeur AMD ou Intel récent 64 bits, multi-coeur. (dans mon cas un Intel Core i7 3770k). Pour être confortable, 4 coeurs me paraissent un minimum. Attention je parle ici de coeurs physiques, le multithreading n'apportant aucun gain de performance. En effet, WRF est optimisé pour exploiter au mieux les pipelines de calcul des processeurs, il ne laisse donc pas de puissance résiduelle exploitable par le deuxième coeur virtuel de chaque processeur. Les coeurs virtuels ne vous serviront qu'à faire des traitements batch parallèles peu gourmands et plutôt orientés entrées/sorties, comme télécharger des données ou préparer des fichiers.
  • 1Go de mémoire mini pour faire tourner un run simple du modèle, 4 GO fortement recommandés pour augmenter la taille du domaine.
  • 60 à 80 Go de disque : il faut plus de 15Go de données géographiques, et prévoir encore plusieurs Go pour les données météo GFS, les fichiers intermédiaires, les fichiers de compilation et inévitablement toutes vos cartes météo.
  • Distribution Linux 64 bits. J'ai réussi avec succès avec l'Ubuntu 12.04 LTS x86 64. Evitez la version 32 bits, WRF ne semble pas tellement prévu pour cet environnement et certains dysfonctionnements que j'ai rencontrés semblent liés à des spécificités de librairies sur cette plateforme. De plus le 64 bits apporte une optimisation non négligeable : à vue de nez, sans avoir fait de benchmark précis, je dois être à environ 20-30% de gain par rapport au 32 bits.
Je ne détaillerais pas l'installation du système linux ni de la solution de virtualisation. Ce n'est pas l'objet de ce document, et ce n'est vraiment pas compliqué. Bien des documents de qualité existent sur ce sujet sur internet. De plus, bien que je me base sur une distribution de Linux précise, le lecteur pourra facilement adapter mon propos à sa propre distribution, si toutefois il en choisissait une autre. Je n'insisterais que sur la configuration du système.

Code source


WRF est disponible sous forme de code source en langage Fortran. Les sources sont disponibles à l'adresse suivante :

http://www2.mmm.ucar.edu/wrf/users/download/get_sources.html

Deux modules à télécharger :
  • WRF-ARW (le modèle proprement dit, en version 3.5 à l'heure où j'écrit)
  • WPS (le pré-processeur de données)
Vous aurez également besoin des données géographiques (relief, type de surface, etc...), prenez le dataset complet :

http://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html

Sur la page de téléchargement de WRF, plus bas, des liens de téléchargement de sources de librairies sont fournis. Il s'agit des librairies JasPer, PNG et zlib. Je n'ai pas eu besoin de recompiler la zlib mais on ne sait jamais pour vous... Prenez en tout cas JasPer et PNG, il est très important de les compiler vous-même avec cette version bien spécifique, sinon vous risquez des problèmes divers et variés.

Une autre librairie est très très importante, et sa compilation doit être faite dans les règles de l'art. Il s'agit de la librairie NetCDF, qui sert à enregistrer les données intermédiaires et finales du modèle. Téléchargez les sources de la dernière version sur :

http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

Vous aurez besoin de la NetCDF C (le noyau de la librairie) et Fortran (interface pour le langage Fortran).

Pour compiler cette librairie, il vous faut la librairie HDF5. Là encore, cette librairie devra être compilée par vos soins. Téléchargez les sources :

http://www.hdfgroup.org/downloads/index.html

Et enfin, il vous faudra éventuellement installer NCL (langage de commande). Celui-ci n'est pas indispensable à ce stade (utilisé uniquement pour des outils annexes à WRF, que vous ne pourrez alors pas compiler) mais vous sera fort utile pour générer vos cartes météo par la suite. Pour l'obtenir, il vous faudra vous créer un compte au préalable (c'est gratuit). Suivez les instructions sur :

http://www.ncl.ucar.edu/Download/

Au moment de télécharger, ne prenez pas les sources (pour une fois !) mais les pré-compiled binaries. Prenez la version Debian 64 bits non DPAP.

Paquets systèmes à installer


Vous devrez installer les outils de développement, un certain nombre d'utilitaires et des librairies autres que celles que vous aurez à compiler vous-même. Utilisez l'outil Logithèque Ubuntu ou l'outil apt-get pour installer les paquets suivants :
  • make (pour les scripts de compilation)
  • gcc (le compilateur C, pour certaines librairies)
  • g++ (le compilateur C++, pour certaines librairies)
  • gfortran (le compilateur Fortran 95)
  • curl, libcurl et libcurl-dev
  • perl (pour les scripts de compilation)
  • CSH (shell avec syntaxe C, requis pour les scripts de compilation)
  • KSH (korn shell, requis pour le post-processeur)
  • M4 (encore une dépendance pour les scripts de compilation)
  • libcairo2-dev (pour NCL)
  • openmp (facultatif, dépend des options de compilations choisies)
  • openmpi-dev et openmpi (facultatif, dépend des options de compilation choisies)
Dans le prochaine article intitulé Partie 3 - Préparation de l'environnement nous mettrons en place notre environnement de travail et compilerons les librairies nécessaires.