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:
  1. 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.
  2. 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.
  3. 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]