Mise en place d`outils et méthodes de développement - iWW

Transcription

Mise en place d`outils et méthodes de développement - iWW
Mise en place d’outils et
méthodes de développement
pour Polyphemus
Meryem Ahmed de Biasi
25 juin 2008
1 / 19
Plan
1 Contexte
Présentation de Polyphemus
Utilisateurs et partenaires
Exemple d’application
Objectifs
2 Réalisations
Liste des réalisations
Réalisation détaillée : parallélisation
Bilan
3 Perspectives
4 Conclusion
2 / 19
Plan
1 Contexte
Présentation de Polyphemus
Utilisateurs et partenaires
Exemple d’application
Objectifs
2 Réalisations
Liste des réalisations
Réalisation détaillée : parallélisation
Bilan
3 Perspectives
4 Conclusion
3 / 19
Présentation de Polyphemus
Polyphemus
Plate-forme complète et pérenne pour la modélisation de la qualité de
l’air développée par l’EPI CLIME et le CEREA (laboratoire commun
ENPC / EDF R&D)
Multiple
• Multiples modèles
• Multiples applications
I Échelle locale à échelle européenne
I Radionucléides, ozone, aérosols, . . .
• Multiples méthodes
I Incertitude, prévision d’ensemble
I Assimilation de données
4 / 19
Utilisateurs et partenaires
En France
•
•
•
•
•
EDF
Études d’impact
IRSN
Radionucléides, crise
INERIS
Échelle locale, photochimie
CETE Nord-Picardie
Évaluation des PDU
DGA
Échelle locale, évaluation d’un réseau de mesure
À l’étranger
•
•
•
•
•
CRIEPI (Japon)
Photochimie et aérosols
EDF Polska
Études d’impact
IER Stuttgart
Impact sur la santé
Meteo Chile & CMM &Universidad de Cordoba
Prévision
Académie Chinoise des Sciences (IAP)
Qualité de l’air, ensemble
5 / 19
Exemple d’application
Assimilation de données
Améliorer la prévision en utilisant à la fois les résultats d’un modèle et
des observations.
4 algorithmes différents intégrés dans Polyphemus.
160
55
140
reference
observation
OI
EnKF
4DVar
RRSQRT
120
g´ m
3
50
Concentration
100
45
80
60
40
40
35
-10
-5
0
5
10
15
20
20
0
10
20
30
40
Observation numbers
Réseau de mesures EMEP.
Résultats à la station de Montandon.
6 / 19
Objectifs
Contexte à mon arrivée
• Le code commençait à avoir
une certaine maturité.
• Le nombre d’utilisateurs
augmentait.
• Pas de sorties régulières de
versions stables.
Évolution du code jusqu’à mars 2007.
Objectifs
• Faciliter l’utilisation de Polyphemus à l’extérieur de CEREA/CLIME
et améliorer la diffusion.
• Permettre et pérenniser les développements extérieurs.
• Améliorer certaines fonctionnalités du code (besoin utilisateurs).
7 / 19
Plan
1 Contexte
Présentation de Polyphemus
Utilisateurs et partenaires
Exemple d’application
Objectifs
2 Réalisations
Liste des réalisations
Réalisation détaillée : parallélisation
Bilan
3 Perspectives
4 Conclusion
8 / 19
Réalisations (1/4)
Amélioration du code
• Amélioration de l’ergonomie
(ligne de commande)
• Amélioration de la portabilité
64 bits
• Imbrication de simulations
• Script de simulation simplifié
et interface graphique
• Version parallèle de Polair3D
9 / 19
Réalisations (2/4)
Mise en place d’outils
• Réalisation de deux
documents sur les processus
de développement et sur la
sortie de version.
• Passage à INRIA Gforge
I
I
I
I
I
4 listes de diffusion
2 outils de suivi
Dépôt Subversion centralisé
Téléchargement
Documents
10 / 19
Réalisations (3/4)
Diffusion du code
• Sortie de 4 versions stables
(et 5 versions patchées)
• Évolution de la documentation
I Guide d’utilisateur (170
pages)
I 3 cas-tests
I Sessions de formation (plus
de 24 h de formation)
I Documentation de 4
bibliothèques (générée par
Doxygen et Epydoc)
11 / 19
Réalisations (4/4)
Diffusion du code
• Mise à jour du site Internet (Présentation, Téléchargement,
FAQ . . . )
• Sessions de formation
I
I
A l’ENPC (mars 2007), 13 participants. 8 sessions différentes
proposées (environ 3h par session).
A Santiago du Chili (juin 2007), une dizaine de participants de 5
pays. 2 sessions (essentiellement assimilation de données)
• Support aux utilisateurs (INERIS, CMM, . . . )
12 / 19
Réalisation d’une version parallèle
Besoin
• Utilisation opérationnelle : la durée des calculs doit rester faible.
• Clusters et machines multiprocesseurs de plus en plus répandus.
Principe
Domaine divisé en sous-domaines indépendants pour lesquels la
simulation est assurée par un des processus parallèles.
Mise en oeuvre
• Utilisation de la bibliothèque LAM/MPI pour les communications
entre processus parallèles
• Parallélisation d’un module d’advection, d’un module de diffusion
et d’un de chimie.
13 / 19
Outils disponibles actuellement (1/2)
Diffusion
• Site Internet de Polyphemus
• Zone de téléchargement sur INRIA Gforge
• Liste de diffusion pour les annonces
Développement
• Dépôt Subversion accessible à tous les développeurs
• Conventions de codage
• Document sur les processus de développement
• Liste de diffusion pour les développeurs
14 / 19
Outils disponibles actuellement (2/2)
Documentation et support
• Guide d’utilisateur (50 -> 170 pages)
• 3 cas-tests (1 avant)
• 8 sessions de formation
• Liste de diffusion pour demander de l’aide
• 2 outils de suivi : bugs, demande
• FAQ
15 / 19
Plan
1 Contexte
Présentation de Polyphemus
Utilisateurs et partenaires
Exemple d’application
Objectifs
2 Réalisations
Liste des réalisations
Réalisation détaillée : parallélisation
Bilan
3 Perspectives
4 Conclusion
16 / 19
Perspectives
Améliorer la qualité du code
• Développer des tests unitaires et de non régression.
Faciliter la diffusion et les partenariats
• Période critique : certains outils viennent d’être mis en place, il
faut faire en sorte qu’ils soient bien utilisés (suivi, listes de
diffusion . . . )
• Former et suivre les développeurs extérieurs
• Faire des scripts d’utilisation simplifié adaptés aux besoins
spécifiques d’utilisateurs (en cours, pour EDF)
17 / 19
Plan
1 Contexte
Présentation de Polyphemus
Utilisateurs et partenaires
Exemple d’application
Objectifs
2 Réalisations
Liste des réalisations
Réalisation détaillée : parallélisation
Bilan
3 Perspectives
4 Conclusion
18 / 19
Conclusion
Ce que j’ai appris
• Techniques :
I C++
I Python
I Qt
I Parallélisation.
• Travailler sur un code de cette importance :
I Utilisation de Subversion pour le travail collaboratif.
I Utilité des outils comme Gforge (limite le travail pour la diffusion)
I Importance de la documentation pour les utilisateurs extérieurs
I Méthodes pour garder le code le plus propre et le plus lisible
possible
19 / 19

Documents pareils