Atelier logiciel libre pour la modélisation des plantes - Agritrop

publicité
ALEA
Atelier logiciel libre
pour la modélisation des plantes
Christophe Pradal, Christophe Godin
Modélisation des plantes
Botanique:
U2 U2
X
I2
I1F1
U2
F1
XI1
X I10
F1
XF1
XI9
F1
I7 S1
U2
S1I8
I6
X
F1
I15
U2
X I10
F1
Mesure:
U2
U2
X
F1
U1
I11
I10
X
XI9X F1
F1
F1
U1 I12I13 I8 U2
U1
U1
U2
U2
+ F1
U2
U2
+
A92
F1
+
+
+
F1
F1 A92
A92
F1
A92
+
A92 + S1
+ A92 + U1
+
< + S1
A92
<
++
< + A92< + F1
+
U2
A92
+ A92 + F1
F1
+
<
F1
+ A92 + F1
A92
+ U2+
U2
+ < + <
A91
<
A91
U1
+
U1
+
+
U2
+
<
A91
dC C − C
R
|Sdt = R − k C
||TdWdt = α C
A92
Modélisation:
U1
Simulation:
f
r
f
f
0.4
0.2
0.2
0.1
0.1
0.3
0.2
0
0
5
0
0
0
5
1
10
0.3
0.2
0.2
0.1
0.1
0
0
5 10 15 20
f
2
0
0
5 10 15 20
3
f
f
feuilles
r
racines
f
0.2
0.1
0.1
0
0.3
f
0
0
5
10
4
15
0
10
20
5
30
6
C −C
R
|SdCdt = R − k C
|TdWdt = α C
r
f
r
r
r
r
r
r
AMAPmod - 1995
Extraction
Models
& tools
350
350
300
300
250
250
200
histogramme
200
loi
150
150
Plant
Code
Form ...
Classes ...
Decompos ...
Topology ...
Features ...
Code ...
/P1/U1
+U1 ...
Observation
Digitalization
MTG
100
100
50
50
0
0
0
0
1
2
3
4
5
6
1
2
3
4
5
6
7
7
10110000101
00110011101
11101101011
...
40034010
...
4440132101133
2300141111
AML
2
0
1
3
?
AMAPmod - 1995
Analyse et modélisation de l'architecture des plantes
– Développé par deux chercheurs en collaboration avec des biologistes.
– 400 kl de C++ étendues par le langage «maison» AML
Goulot d'étranglement
– Demandes des biologistes en application
– Formation
– Maintenance
– Nouveaux développements
Choix Logiciel libre
– Licence GPL
– Des utilisateurs dans plus de 20 pays
– 150 chercheurs formés, 8 formations
– Architecture statique, sentiment de propriété => pas de co-développement
FSPM - 1996
FSPM (Functional / Structural Plant Modelling)
– Communauté scientifique international de modélisation
des plantes (workshops, ~200 chercheurs)
Modélisation de la croissance et du fonctionnement
des plantes
– Representation 3D de l'architecture des plantes
– Modèles physiologiques et environementaux
– Outils d'analyse et de simulation
Domaines d'application
– Botanique, foresterie, agronomie et écologie
Un domaine pluridisciplinaire
Visualisation
Biophysique
Ecophysiologie
Analyse statistique
Analyse spatiale
Calcul scientifique
Modélisation
Génie logiciel
Simulation
...
Réseau PAIS - 2000
Plant Architecture Information System
– Réseau européen et international
Objectifs
– Partage des bases de données
– Définir un standard de representation des plantes
– Diffuser modèles et outils logiciels
– Formation
Limites
– Pas d'homogénéité dans la démarche logicielle
– Pas de règles de diffusion
ALEA - 2003
Atelier Logiciel pour la modélisation Ecophysiologique de
l'Architecture des plantes
– Utiliser, évaluer et construire des modèles experimentaux.
Objectifs
– Communauté autour d'un logiciel
• Co-développement entre équipes de recherche
• Echange d'experience et d'outils
• Formation
– Architecture à composants logiciels
• Intégration des modèles existants (C, C++, Fortran)
• Développement rapide de nouveaux modèles
• Qualité logicielle pour diffusion et maintenance
Partenaires
– INRA, CIRAD, INRIA, LABRI.
Logiciel Libre - Intérêts scientifiques
Validation scientifique
– Accès code source => Vérification des modèles, algos, outils.
Collaboration scientifique
– Les modèles publiés sont directement accessibles.
Accessible et adaptable par tous
– Code adapté par chacun en fonction de ses besoins.
– Modèles compatibles et comparables.
Pérennité du code
– En cas d'arrêt du développement, quiconque peut reprendre un projet
et continuer à le développer.
Protection du droit d'auteur
– Licence libre
Logiciel Libre – Avantage pratique
Synergie
– Collaboration entre développeurs (souvent isolés)
– Collaboration entre équipes pluridisciplinaires
Economie d'échelle
– Développement
– Diffusion et Maintenance
– Formation
– Veille technologique
Qualité
– Rationalisation des choix
– Règles communes
Communauté libre ALEA
Architectes
– Développent le noyau principale du système
– Conseil, formation et assistance auprès des modélisateurs
Modélisateurs
– Développent et intègrent leurs modules
– Conseil, formation et assistance auprès des utilisateurs
Utilisateurs
– Définissent des scénarios
– Mettent à disposiion des bases de données
Communauté libre
– Licence libre du noyau: LGPL
– Critères de diffusions:
• Copyright & license.
• Qualité logicielle (GUI, tests, documentation)
Logiciel Libre – ALEA
Communauté libre
– Développeurs, modélisateurs et utilisateurs
– Règles de fonctionnement (Charte ALEA)
Licence libre (LGPL)
Animation de la communauté
– Réunions régulières des architectes
– 2 formations des modélisateurs
– 3 formations des utilsateurs (France, Brésil, Thaïlande)
Développement collaboratif
– CVS, Forums
– Site web (en construction)
o rd e r 3 G U 1
ALEA
25
20
15
10
5
0
0
5
10
15
20
SEast
1800
U2
X
I2
I1 F1
1991
1992
U2
X F1
I1
I10
X F1
I9
X I8
F1
U2 I7 S1
S1 I6
X
F1
X
F1
ALEA
U2
U2
MAX
n
X
F1
I15
I11
I10 X
X I9 X F1
F1
F1
I8
I10
U1
1400
MEAN
1200
RATP
1000
800
600
400
200
0
8:00
U2
I13
I12
U1
U1
12:00
16:00
LOCAL TIME (h)
U1
dul
es
U2
se
y
l
a
n
A
MIN
1600
Python, GUIs
Sim
ulat
io
Mo
F1
X
Mo
dél
isa
tio
PAR i (µm ol.m-2.s-1)
U2
n
20:00
R
ALEA: différents objets biologiques
Python vu comme un Bus Logiciel
Modules spécialisés
Modules scientifiques
Differents toolkit
de GUI
Ponts entre les
languages
Numeric
SciPy
XML
Database
GUI
QT
Python
shell
Boost, SWIG
f2py
C++
Classes,
C Code
Fortran
Code
math
math
Modules standard Python
(http://root.cern.ch)
ALEA – Description technique
✔
✔
✔
Langages: C, C++, Fortran et Python
OS: Gnu/Linux, Windows
Logiciels utilisés
✔
GUI: QT et PyQT
✔
Gestion de versions: CVS
✔
Documentation: Doxygen (C, C++), epydoc (Python)
✔
Tests unitaires: cppUnit, PyUnit
✔
Compilation: SCons
✔
Wrappers: Boost.Python, Swig et f2py
Logiciel Libre – Tension liée au don
Le don perçu comme une perte
– L'utilisateur n'est plus captif.
– Comment valoriser et financer le coût de
développement?
Le don comme un échange
– Partage des coûts de développement des algos, de la
formation et de la diffusion du logiciel.
– Partage des connaissances
• Scientifiques
• Techniques (génie logiciel)
• Bases de Données (plantes)
ALEA – Bilan
Logiciel Libre, un modèle adapté pour la recherche
– Création d'une communauté libre française entre équipes initialement
concurrentes.
=> Développement d’un outil de collaboration
=> Propriété partagée
=> Partage des connaissances entre équipes
=> Amélioration de la qualité
- Co-développement possible
Un bénéfice pas encore unanimement reconnu
– Perte du contrôle total
– Problème d’identité de l’auteur
– Coût de la qualité
– La transparence fait souvent peur
– Valorisation par la publication
Questions ouvertes
Comment financer le développement logiciel ?
– Double licence ?
– Consortium ?
– …?
Comment valoriser l’activité de production logicielle ?
– Investissement lourd
– Faible reconnaissance des instances d’évaluation
– Logiciel = production scientifique ?
Un modèle pour le partage des données en biologie ?
Téléchargement