OpenAlea

publicité
OpenAlea
OpenAlea: news & perspectives
2011
C. Pradal, C. Fournier, C.
Godin
OpenAlea - Alinea
Plateforme/services pour la diffusion et
l’interopérabilité des modèles
Bibliothèque de modèles EA sur le thème
plante virtuelle (reconstruction –
simulation 3D, microclimat,
fonctionnement)
Communauté FSPM
How big is OpenAlea ?
OpenAlea, Vplants, Alinea
- 957 K Source Lines of Code
- 270 Person-Years, 36 000 000 $ (COCOMO)
Credits: David Wheelers SLOCcont
How big is OpenAlea ? (cont.)
RoadMap 2011
Interoperability with other international platforms
– Record, GroIMP, Lstudio, Capsis, …
– Phenotyping
High Performance Computing
– Distributed computing (SPMD, GPGPU, MPSD)
Benchmark methodology and open data
– Comparison of models
– Open license for databases
– Reproducibility of experiments
Web technology
- Upload, download dataflow/data on a web server
- Package Manager as a catalog of web services
Diffusion and software quality
– Training, documentation, continuous integration,
Technology - Deployment
Build (SconsX)
New tools : f2py, cython
Installation
- python setup.py [develop | install |
bdist_egg]
- build, install (header, lib, bin, share)
- python multisetup.py ...
Packaging
- eggs, deb (launchpad), NSIS, pkg
Package Builder
alea_create_package --name MyPkg
--languages cpp fortran
Horizon OpenAlea 2.0
Environnement Python scientific
OpenAlea Web
Alinea : du dépot de modèle…
Light Microclimate
M Chelle, D Combes
Plant/Pathogens
Morphogenesis/Plasticity
C Robert,C Fournier,S Saint Jean , M Chelle Verdenal, Louarn, Fournier, Andrieu
Plant functioning (N,C02)
Bertheloot,Andrieu, Louarn,Luquet,Soullie
Louarn, Lebon, Prieto
3D measurement/Phenotyping
Combes, Andrieu, Louarn, Dornbusch,Fournier
Vers des composants inter-opérables
Plant Topology & Geometry
Fluxes and Plant Functionning
Development
Environnement / Phylloclimat
Paquets/projets actifs 2011
Modèles
Méthodes génériques
(Publication)
RATP
M2A3PC
Echap
Leaf Reflectance
MappleT
Topvine physiology
Phenomena
PlantScan3D
Rose
MTG
Lpy
Modular FSPM
Tendances
Liens plateforme Phénotypage
Support projet élargi
(Rizopolis, ITN cyberplants)
Communauté
1ère Journées OpenAlea (14-15 juin)
60 participants
18 topos
2 Tables rondes
Labellisation « plateforme département EA »
Gouvernance
Réorganisation développeur
Contribution plateforme (CATI ?)
Recentrement Modélisateur- développeur pour Alinea
Création Scientific Board
Goals
- Software Review as an editorial committee
- Animation & Training & Workshop
- Strategy & Management
Board
- C. Godin & C. Pradal (INRIA/CIRAD, EPI VirtualPlants, AGAP,
Mpt)
- B. Andrieu (INRA, EGC, Paris/Grignon)
- M. Chelle (INRA, EGC, Paris/Grignon)
- B. de Solan (Arvalis, EMMAH, Avignon)
- S. Dufour-Kowalski (INRA EFPA, AMAP, Mpt)
- C. Fournier (INRA, LEPSE, Mpt)
- G. Louarn (INRA, PPF, Lusignan)
- M. Saudreau (INRA, PIAF, Clermont-Ferrand)
- J.C. Soulie (CIRAD, AGAP, Mpt)
- L. Pagès (INRA, PSH, Avignon)
Plant modeling
Different
scales
U2 U2
X
I2
I1F1
U2
Data
acquisition
XF1
I1
X I10
F1
I9XF1
X
F1 S1
I7
U2
S1I8
I6
U2
U2
X
F1
U1
I11
I10
X
X
I9
F1
X
F1 F1
I8
X
F1
U2
I15
X I10
F1
U1I12I13
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 f Cr − C f

=
− kf C f
 dt
R

dW
f

= α fCf
 dt
A92
Modeling
U1
Simulation
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.2
leaves
r
roots
0.1
0.1
0
0.3
f
0
0
5
10 15 20
2
0
0
5
10 15 20
3
0
0
5
10
4
15
0
10
5
20
30
6






dCr C f − Cr
=
− kr Cr
dt
R
dWr
= α r Cr
dt
A diversity of modeling formalisms
m
F
D
P
C
l
k
i
j
B
g
h
e
d
f
c
E
b
A
a
Geometrical models
Fractals
Graphs
p1
Transport networks
A(age) :age < T
ODEs and PDEs
Statistical models
--> I(age)[A(age+1)]A(age)
p2
1-p1
2
1
1-p2
A(age) :age == T --> F
P(branche) =
Dynamical systems with dynamical structure (e.g. L-systems)
1 − p2
(1 − p1 ) + (1 − p2 )
Stochastic processes
Co-evolution with FSPM community
AMAPmod (1995): Plant analysis
- OpenSource but static architecture.
- No co-development
1st FSPM workshop (1996)
- Emergence of FSPM community
- Need to share models & tools
PAIS Network (2000)
- 1st initiative to share database, models, software &
training
- No common strategy for software development
Réseau Ecophysiologique de l’arbre (2003)
- Definition of the strategy for software development
- Birth of the OpenAlea community
FSPM 2004
- Presentation of the 1st release
Context
Multi-disciplinary domain
– It involves a variety of disciplines and
expertise.
Low Reusability
– Large models are built from smaller parts
– Reusing existing software is complex
• Different OS, different programming languages
• No common standards or data-structures
Building models is expensive
– Development
– Validation
– Distribution, Documentation, Training
OpenAlea Goals
OpenAlea
A platform for plant modeling at different scales.
Sharing knowledge
Reuse software & tools
Share development between various teams
Share databases & training effort
Common software platform
Integration of existing models & tools
Rapid development of new models
Enhance accessibility (GUI)
Quality rules
OpenAlea design principles
Language centric
– Common modeling language
– Glue language
– Dynamic composition
– High-level dataflow approach
Visual programming
– Graphical model representation
– Automatic GUI generation
Shared deployment tools
– Build, packaging, distribution,
installation, upgrade
Multi-platform
– Linux, Windows, Mac OS X
3D
Vie w
er
St a
t is
t ic
ph
ra
G
Component architecture
o
s iiooll o
pphhyys
E
Eccoo
G
G
MT
ggyy
Bi o
ph
LLii
ggh
htt
ODE
ys i c
Ne
M e ew
tho
d
ur
Yo h o d
t
Me
Si m
u la
ti o
n
OpenAlea Architecture
GUI
Existing
C, C++, Fortran
Models
Visualea
Deployment Tools
Python
Library
Compone
nt
framewor
k
Numeric
PyQt
4
Component
SciPy
Package
Manager
XML
Dataflow
Database
GUI
GUI
Python
JEmbed
Boost, SWIG
f2py
Java
Classes
C++ Classes,
C Code
Fortran
Code
shell
math
Python as an integration platform
Scientific modules
NumPy
SciPy
Very rich set of
specialized
generic modules
XML
Several GUI
toolkits
R
Gateways to other
frameworks
GUI
PyQt
Jeep
Boost, SWIG
f2py
Java
Classes
C++ Classes,
C Code
Fortran
Code
shell
math
math
Very rich set of
Python standard
modules
Visual Programming
Dataflow
Package
Manager
Compone
nt
Widgets
Python
Interprete
Plant architecture and ecophysiology
Plant architecture
analysis - VPlants
(Godin, Guedon et al)
Biophysical models
Buissiere et al., 07
Fournier et al., 07
Pradal et al., 08
3D reconstruction,
simulation of
development, and
epidemics
Wheat, Maize, Rice, Vine
Apple, Almond, Peach
VPlants
Multiscale
Topology (MTG)
PlantGL
(Boudon, Pradal et
al)
(Godin, Pradal et al)
Axes
+ +
+
+
+ +
+
+
Growth unit
+
<
+
+
<
+
+
<
+
<
+
<
Internode
<
+
+
+
+
<
+
+
+
<
+
+
<
+
+
+
+
+
Stat
(Guédon, Durand et al)
+
+
<
<
<
L
M
+
<
S
+
F
Zone s L
20
Number of GUs
<
15
histogram
10
NB(12, 1.0, 0.1)
5
0
0
10
20
30
40
50
60
Numbe r of inte rnodes
70
80
LPy
(Boudon et al)
Alinea
Microclimate
M Chelle, D Combes,K Ma
Plant/Pathogens
Morphogenesis
C Robert,C Fournier,S Saint Jean , M Chelle
Verdenal, Louarn, Fournier, Andrieu
3D reconstruction
Plant functionning
Photosynthesis
Lebon, Louarn, Prieto
Transpiration
Fournier, Combes, Andrieu, Louarn, Dornbusch,
Connection with other platforms
GroIMP, Kniemeyer et.
LStudio, Prusinkiewicz et. al.
al.,
CAPSIS,
Coligny & Dufour-Kowalski
LPy, Boudon et.
al.
Connexion OpenAlea - DTK
E. Moscardi et al.
J.Wintz and Asclepios – INRIA
OpenAlea - DTK
OpenAlea Community
3 types of members
– Computer scientists (Kernel development)
– Modelers (Module development and integration)
– Users (Define scenarii, provide plant databases)
Some contributors
– France:
INRIA Virtual Plants/UMR DAP, UMR Lepse, UMR AIVA
(Montpellier), UMR PSH, UMR EMMAH (Avignon), UMR EGC
(Paris-Grignon), UMR PIAF (Clermont-Ferrand), UMR RDP (ENS
Lyon), EPI Anubis,UMR Labri (Bordeaux), EPI INRIA Mistis
(Grenoble), UMR SAGAH (Angers), …
– International:
Calgary U. (Canada), Gottingen U.
(Germany), Wageningen U. (Netherlands), California U. (USA),
CPIB (UK)
– Industrial:
Arvalis
OpenSource community
OpenSource license
– Kernel : CeCILL-C
– Visualea: CeCILL
– Components (Open or proprietary license)
Animation of the community
– « Coding sprint » for developers
– « Modeling sprint » for biologists &
developers
– « Hackathon »
Collabartive development
– Shared website (gforge)
– Documentation & code
Conclusions
OpenAlea is a collaborative project
– http://openalea.gforge.inria.fr
Reusable components
– Itegration of heterogeneous models
– Deployment tools (Build, Download, Share)
Flexible and extendable
– Multi-domain (plant architecture, meristem, …)
Usable by biologists
– Visual Programming
– Automatic GUI generation
Component / Node
Simple Python
function
– Multiples I/O (ports)
– Typed interface
– Documentation
Port
• name : ‘nb_plants’
• Interface : IInt
Technology – Log & Script
Logging
- One logger / module
- critical, error, warning, info, debug
Dataflow to Script
OpenAlea - Dataflow
Dataflow
{X, Y, f}
Orchestration
Multiple algorithms
for graph evaluation
Control flow
Dataflow variable : X
Map, for, while
Scheduling
Exemple : Euler
scheme
Sensitivity Analysis in Parallel
- map vs pmap (SPMD)
- 180 s vs 100 s => speedup = 1.8
OpenAlea - Dataflow
Problem
Processes may have
different time scale
Scheduling
- define active nodes
- evaluate until one
active node stop
Technology - Quality
Documentation (sphinx)
- Dataflow command (exemple)
.. dataflow:: openalea.pylab.test tutorial_plot
Test (nosetests)
- Unit test, dataflow
Continuous integration (builbot)
- openalea, vplants, alinea
http://vp-continuous.cirad.fr
- build, install, test, package, …
after each commit
Téléchargement