Anne Jeannin-Girardon, Pascal Ballet et Vincent Rodin.
Architecture logicielle pour la conception de simulation de systèmes
multi-cellulaires sur GPU.
32ème séminaire de la société francophone
de biologie théorique (SFBT), pages 20-21, St Flour (France),
10-13 juin 2012.
Lauréate
du prix Pierre Delattre (prix du meilleur exposé
[pdf]),
prix conjointement décerné à
3 étudiants en thèse.
Résumé:
La simulation de systèmes biologiques en environnement virtuel permet
d'aider les biologistes à mieux comprendre le système
réel et à formaliser leurs connaissances. En outre ce type de
simulation a un coût considérablement réduit par rapport
à celui des simulations in vivo et in vitro.
Si la complexité des systèmes biologiques rend attrayante la
simulation in virtuo, deux difficultés majeures,
inhérentes aux systèmes, sont à prendre en compte :
d'une part l'aspect multi-échelles de ces simulations, tant spaciale
- de 10-9 m (gène, protéine) à
101 m (organisme) - que temporelle - de 10-3 s
(interactions moléculaires) à 109 s (espérance
de vie), et d'autre part le grand nombre d'entités que l'on peut
être amené à vouloir simuler.
Des modèles prenant en compte une telle complexité deviennent
difficilement simulables sur des architectures non parallèles.
Cependant, la parallélisation des modèles et leurs
implémentations peut être difficilement accessible :
quelle formalisme adopter pour la parallélisation ?
sur quelle architecture cible exécuter la simulation résultante
et comment exploiter les ressources disponibles de cette architecture ?
Plusieurs approches tentent de répondre à ces questions.
CompuCell3D 1 est une implémentation logicielle du
modèle de Potts cellulaire pour la simulation de tissus : cette
implémentation intègre une hiérarchie de
sous-modèles pour la prise en compte d'échelles
différentes. Une version parallèle a été
réalisée avec OpenMP.
FlameGPU 2 est une architecture qui se veut plus
généraliste, s'appliquant à des domaines variés
(biologie, économie, ...).
C'est une architecture basée sur un système multi-agents, ces
derniers étant modélisés par des X-machines.
L'architecture a été portée sur GPU avec CUDA.
Nous proposons une architecture logicielle spécialisée pour la
simulation de systèmes multicellulaires (en particulier pour la
simulation de morphogenèse/cancérogenèse), contenant un
modèle de cellule biologique, et exécutable sur architectures
parallèles implémentant OpenCL.
Le flot "classique" de conception de simulation comporte des étapes
nécessitant chacune des compétences variées, depuis la
conception logicielle jusqu'à la mise au point de modèles
computationnels appliqués à la biologie. L'architecture
proposée vise à réduire la complexité de la
conception de simulation en abstrayant des étapes du flot.
L'architecture contient un modèle de calcul (voir ci-dessous) ainsi
que les outils pour paramétrer et lancer des simulations.
Ces simulations sont visualisables dans un environnement virtuel de dimension
deux ou trois.
Les mécanismes biologiques sont intrinsèquement parallèles,
ce qui rend l'utilisation de l'approche concurente adaptée, en
particulier sur architecture SIMD comme les GPU. Le coût des simulations
s'en trouve réduit, tant en terme de temps de calcul qu'en terme de
matériel. La parallélisation du modèle de calcul est
réalisée avec OpenCL, qui est un standard aujourd'hui
implémenté sur la plupart des architectures multi-coeurs.
L'exécution d'une simulation comporte trois aspects principaux :
1) L'exécution du modèle de calcul, qui dans le cas d'une
implémentation parallèle sur architecture SIMD nécessite
que du parallélisme de données soit présent.
Les modèles de calculs utilisés en biologie sont
parallélisables pour la plupart, bien que des optimisations soient
souvent nécessaires pour tirer pleinement parti du parallélisme
de l'architecture sur laquelle la simulation est exécutée.
2) La réalisation d'une simulation nécessite de pouvoir
être analysée de manière quantitative.
L'architecture met à disposition de l'utilisateur un mécanisme
simple de tampon permettant de rapatrier et stocker des données pour
traitement a posteriori.
3) L'exécution du modèle de calcul sur un
accélérateur de type GPU permet très naturellement
une représentation dans un environnement virtuel grâce à
un partage de contexte. Des mécanismes de blocage permettent une mise
à jour sûre des données pour le calcul d'un
côté et l'affichage de l'autre.
Nous privilégions une approche mésoscopique, centrée sur
la cellule, dans notre architecture.
Le modèle de calcul "de base" est donc un modèle logiciel de
cellule biologique.
Ce modèle est issu du modèle FlexBioDyn 3, dans
lequel la cellule est représentée sous forme d'un système
masse/ressort. Plusieurs types de moteurs sont utilisés : un moteur
physique, permettant de définir le comportement physique de la cellule ;
ainsi qu'un moteur de comportements, qui permet de définir des
comportements propres aux entités simulées, en particulier des
cellules biologiques (motilité, division, apoptose, ...).
Bien que centré sur la cellule, ce modèle permet de simuler des
entités de nature variée comme des molécules
(indispensable dans la simulation de morphogenèse).
Finalement, la parallélisation du modèle de calcul avec le
standard OpenCL permet naturellement un partitionnement atomique de chaque
comportement (tant au niveau physique que comportemental), car chacun d'entre
eux va être codé dans un noyaux OpenCL.
Le modèle est donc flexible. L'ajout de comportements correspond
à la création de noyaux, et les comportements déjà
implémentés dans le système n'en sont pas
affectés.
Cette architecture logicielle vise à faciliter la conception de
simulations s'exécutant sur architectures parallèles
implémentant OpenCL.
Ces simulations concernent en particulier l'étude de la dynamique
des systèmes multi-cellulaires, notamment pour la morphogenèse :
nous proposons pour cela d'utiliser un modèle computationnel
centré sur la cellule biologique, permettant d'un côté
une spécialisation de l'architecture pour la simulation de
systèmes multi-cellulaires et d'un autre côté une
flexibilité en terme de comportements.
Références:
- Chaturvedi R., Huang C., Kazmierczak B., Schneider T., Izaguirre J.,
Glimm T., Hentschel H., Glazier J., Newman S. and Alber M.,
"On multiscale approaches to three-dimensional modelling of morphogenesis",
Journal of The Royal Society Interface, vol. 2, no 3, p. 237-253, 2005.
- Richmond P., Coakley S. and Romano D.M., "A high performance agent based
modelling framework on graphics card hardware with CUDA",
In Proceedings of The 8th International Conference on Autonomous Agents and
Multiagent Systems - Volume 2, AAMAS'09, p. 1125-1126, Richland, SC,
International Foundation for Autonomous Agents and Multiagent Systems, 2009.
- Ballet P. et Tracqui P., "Migration de cellules virtuelles
déformables - modélisation biomécanique multiagent de la
migration cellulaire", RSTI série TSI (no Spécial
"Modélisation et simulation pour la post-génomique"),
Edition Lavoisier - Hermes Sciences - volume 26 - no 1-2/2007, p. 149-172,
fév. 2007.
Mots-clefs:
Biologie virtuelle, Simulation, Morphogenèse,
Systèmes multi-cellulaires, architectures parallèlles, GPU.
[link]
[Jeannin12a.pdf]