Organisation logicielle du simulateur

Calcul parallèle

Notre simulateur calcule l’évolution d’un grand nombre d’objet de même nature simulta-nément. Pour répondre aux critères d’efficacité et d’autonomie nous avons le choix d’utiliser un GPU, le processeur dédié des cartes graphiques, ou bien d’utiliser un cluster : une grappe de serveurs interconnectés sur le réseau local. En prenant le nombre d’opérations en virgule flottante par seconde, notée FLOPS, comme référence de la vitesse d’un ordinateur, utiliser le parallélisme embarqué dans les GPU semble être la bonne manière d’atteindre des vitesses de calcul élevées. Nous nous appuyons sur le fait que plus de la moitié des 500 supercalculateurs les plus rapides au monde sont construit sur NVidia Kepler3, un GPU. Les GPU grand public sont accessibles en terme de prix, leur consommation est suffisamment faible pour fonction-ner sur batterie dans un PC portable et les plus puissants atteignent les 10 000 GFLOPS4.Enfin, le parallélisme des GPU semble être plus efficace énergétiquement par rapport aux CPU en comparant leur GFLOPS par Watt [10].
SIMD La taxinomie de Flynn [12] classifie différentes architectures d’ordinateur et comporte quatre catégories selon le type d’organisation du flux de données et du flux d’instructions. Le modèle de programmation le plus répandu repose sur l’architecture de Von Neumann, ce qui correspond à la catégorie Single Instruction Single Data (SISD). Les ordinateurs de cette catégo-rie n’exploitent aucun parallélisme et sont purement séquentiels, tant au niveau des instruc-tions qu’au niveau de la mémoire. Ce modèle de programmation ne correspond pas à la réalité des processeurs contemporains qui exploitent le parallélisme des données (plusieurs banques de mémoire RAM) ou d’instructions grâce à plusieurs processeurs à plusieurs cœurs. À l’ex-trême opposé de la classification se trouvent les architectures Multiple Instruction on Multiple Data (MIMD), puis les architectures Multiple Instructions on Single Data (MISD). Dans le cas des MISD, des problèmes de concurrence à la lecture−écriture apparaissent et il est d’usage d’avoir recours à des barrières de synchronisation, des sémaphores ou des Mutex. SPMD, Single Pro-gram on Multiple Data, est la technique la plus courante pour utiliser le parallélisme des ordi-nateurs multiprocesseurs contemporain, où chaque processeur exécute un programme distinct et possède sa propre mémoire, en plus de partager une mémoire globale, la RAM. Finalement, dans les ordinateurs contemporains, il existe, en complément d’un CPU et d’une mémoire par-tagée, des cartes de calcul dédiées, comme des cartes graphiques, spécialisées dans le calcul vectoriel, capable d’effectuer des opérations rapides sur des grandes matrices. L’architecture d’une carte graphique, munie d’un GPU et d’une mémoire RAM entre dans la catégorie Single Instruction on Multiple Data (SIMD). Ces processeurs sont spécialisés dans le traitement en pa-rallèle d’un grand nombre de données. Depuis la taxinomie de Flynn, d’autres types de Nous avons choisi de tirer parti du parallélisme disponible sur l’ordinateur où est exécuté OTB, qu’il provienne de plusieurs CPU ou d’une carte graphique.
OpenCL Afin d’accéder aux périphériques présent sur la plateforme de simulation et de les programmer, nous utilisons OpenCL (Open Computing Language), un framework pour l’écri-ture de programmes s’exécutant sur des plateformes hétérogènes : microprocesseurs (CPU), processeurs graphique (GPU), processeurs de signal numérique (DSP), réseau de portes pro-grammables in situ (FPGA) ou autre carte accélératrice. OpenCL spécifie un langage de pro-grammation, inspiré de C99, pour la programmation de ces périphériques ainsi que des inter-faces de programmation (API) pour le contrôle de la plateforme et l’exécution des programmes sur les périphériques. OpenCL fournit une interface standard pour la programmation parallèle utilisant le parallélisme de tâche et le parallélisme de données. Il existe d’autres framework pour la programmation des GPU, comme CUDA5, cependant l’avantage de OpenCL est qu’il  est le seul langage pour le GPGPU (General Purpose computing on Graphics Processing Unit) à ne pas être restreint à une seule plateforme. En effet, il fonctionne sur une large gamme de matériel et, au contraire de CUDA, ne se limite pas à un seul constructeur, ni à un seul type de périphérique. OpenCL est un standard ouvert maintenu par Khronos Group6, un consortium technologique à but non lucratif. De nombreux constructeurs fournissent une implémenta-tion officielle, comme AMD, Intel et Nvidia les principaux constructeurs de CPU et de cartes graphiques grand public.
OpenGL Pour répondre au point « Sortie », nous avons choisi d’utiliser OpenGL (Open Graphics Library), une API multiplateforme, multilangage utilisée pour programmer un GPU spécifiquement pour un rendu graphique. Dans le modèle de programmation de OpenGL, un ensemble de vecteurs dans l’espace en trois dimensions sont successivement transformés pour obtenir une projection en deux dimension rastérisée. Le programmeur écrit des programme de traitement, des shader, qui viennent se brancher à différents points de la chaîne de traite-ment graphique. À l’inverse de OpenCL, OpenGL est optimisé pour le calcul vectoriel et n’est pas approprié pour effectuer des calculs généraux sur les GPU. Cette bibliothèque logicielle nous permet de proposer une ou plusieurs fenêtre de rendu en temps réel pour présenter des informations qualitatives sur la progression d’une simulation.

Modélisation d’une cellule

Escherichia Coli est une bactérie bacillaire, c’est à dire en forme de bâtonnet, du genre Esche-richia. C’est une bactérie vivant habituellement dans l’intestin des animaux à sang chaud, dont elle constitue 0,1% de la flore intestinale. Découverte en 1885 par Theodor Escherich et étudiée intensivement depuis 60 ans, c’est un organisme très utilisé dans le domaine de l’ingénierie biologique et de la microbiologie industrielle, notamment pour sa disponibilité et sa facilité de culture. La souche K-12, adaptée à l’étude en laboratoire, est également un des premiers organisme dont le génome a été séquencé [2].
Elle est à l’origine du domaine de la biotechnologie en étant choisie comme premier orga-nisme génétiquement modifié contenant de l’ADN recombiné, c’est à dire de l’ADN dont la séquence des nucléotides à été altérée pour modifier l’expression des gènes de la bactérie. Elle est ensuite utilisée comme hôte pour la production de protéines hétérologues (provenant d’un autre organisme), notamment pour la production industrielle d’insuline humaine [14] mais aussi de vaccins. E. Coli est utilisée en bioremédiation pour la neutralisation de déchets toxique ou la dépollution des sites contaminés et pour la production d’enzymes. Les efforts de recherche se concentrent actuellement sur la synthèse par E. Coli de protéines plus complexes compre-nant par exemple des ponts bisulfure ou nécessitant une modification post-traductionnelle pour être stables ou bien juste fonctionnelles [16].
La chimiotaxie de Escherichia Coli Comme la plupart des bactéries bacillaires, E. Coli pos-sède une ciliature péritriche : elle est assortie de longs flagelles elliptiques, quatre en moyenne, recouvrant sa surface qui sont utilisés comme moteur de son déplacement. Ces flagelles sont fixés à leur base à un moteur rotatif réversible entraîné par un flux de protons et tournent sur eux-mêmes à une fréquence de l’ordre de 100 Hz. Suivant le sens de leur rotation, sens direct (CCW pour Counter ClockWise) et sens indirect (CW pour ClockWise), ils sont à l’origine de deux modes de déplacement :
  le mode « run », les moteurs tournent dans le sens direct et les flagelles se regroupent pour propulser la bactérie dans une direction rectiligne. Il dure en moyenne 1 s;
  le mode « tumble », au moins un des moteurs tourne dans le sens indirect. Les flagelles se désolidarisent ce qui a pour effet moyen de faire tourner la bactérie sur elle-même dans le sens horaire [9]. Ce mode dure en moyenne 0,1 s.
Ces deux modes de déplacement alternent successivement et, en fonction de l’environnement de la bactérie, les amènent à migrer vers des environnements favorables, riches en nutriments et à fuir les environnements toxiques et délétères [1]. Ce phénomène s’appelle la chimiotaxie. Il résulte de la transmission de signaux extracellulaires, détectés par les récepteurs de la mem-brane, aux moteurs des flagelles qui contrôlent le comportement de la cellule.
D’un point de vue macroscopique, E. Coli effectue une marche aléatoire biaisée vers une di-rection particulière. Elle détecte la variation dans le temps de la concentration d’un chimioef-fecteur. Ainsi, lorsque la bactérie se dirige vers un milieu plus favorable, les réorientations par tumble deviennent plus rares et la bactérie peut remonter le gradient de la concentration d’une molécule qui se diffuse dans l’environnement. Entre deux run, E. Coli peut complète-ment changer de direction, avec un angle allant jusqu’à 180°, le plus souvent entre 0° et 90°
[35]. D’un point de vue microscopique, E. Coli peut détecter différents acides aminés, sucres et dipeptides ainsi que l’acidité, la température et l’état d’oxydoréduction.
Les récepteurs principaux, comme ceux de l’aspartate (Tar) et de la sérine (Tsr), sont très nombreux et sont aux nombre de quelques milliers par cellule. Les récepteurs secondaires, comme ceux spécifiques aux dipeptides (Tap), ribose et galactose (Trg), et au potentiel d’oxy-doréduction (Aer), sont bien moins nombreux avec seulement une centaine de copies par cel-lule. Ces récepteurs se regroupent en amas, ce qui induit des dynamiques complexes dans la détection de chimioeffecteurs [30], impliquant soit une plus grande sensibilité ou au contraire une plus grande diversité de détection.
Dans le réseau de régulation génétique, parmi les voies de signalisation de la cellule, la voie de réponse chimiotaxique consiste donc en un ensemble de protéines réceptrices transmem-branaires sus-citées et les produits de six gènes chimiotaxiques : CheR, CheB, CheW, CheA, CheY et CheZ. L’information sur la liaison de ligants bénéfiques ou nocifs aux récepteurs est transportée jusqu’au moteur des flagelles ce qui leur permet de changer le sens de rotation du moteur. Il existe plusieurs modèles stochastiques capables de simuler en détail la cascade d’évènements entre la liaison d’un chimioeffecteur à un récepteur jusqu’au biais des moteurs [28, 24].
Modèle de croissance E. Coli suit un modèle de croissance linéaire [36, 21] par élongation et bien que son diamètre décroisse avec l’élongation, cette variation reste négligeable quand est suffisamment grande [33, 29]. Nous considérerons donc que seule sa longueur (voir Fig. 4.1) varie lors de la croissance d’une bactérie. Comme toutes les cellules procaryotes, E. Coli se reproduit par scissiparité. Ce cycle de division implique :
1. La réplication de la molécule d’ADN circulaire au sein de la cellule ;
2. La migration après duplication des deux brins d’ADN à chacun des pôles de la cellule ;
3. La croissance de la cellule pour laisser la place à un matériel génétique plus volumineux ;
4. Le plan équatorial de la cellule se resserre et fini par scinder la membrane en deux, de sorte que chaque nouvelle cellule fille ait le même matériel génétique.
L’équation 4.1 présente le calcul du temps de génération pour une population de bactéries dont la croissance s’effectue par division binaire, où est le temps en minutes, est le nombre de générations, est le nombre de bactéries au début de la période de temps mesurée et est le nombre de bactéries à la fin de la période de temps mesurée. Cela permet aux biologistes de retrouver le temps moyen d’un cycle cellulaire pour la population observée.
Vieillissement et mort cellulaire Il semble que les bactéries se scindant en deux bacté-ries filles en tout point identiques atteignent une sorte d’immortalité, au moins fonctionnelle. Néanmoins quand elle n’est pas tuée par des antibiotiques, par manque de nutriments ou par le système immunitaire d’organisme multicellulaires, même dans des conditions idéales E. Coli vieillit [31]. Ce vieillissement résulte d’une asymétrie entre les parois membranaires des pôles de la cellule. En effet, un de ces pôle est celui de la cellule mère, alors que le second provient du plan équatorial de scission de la cellule mère et a été fraîchement créé. En partant d’une unique cellule mère, à chaque génération deux cellules possèdent les parois membranaires des pôles de la cellule mère susmentionnée. Avec les générations, le matériel cellulaire diffusant peu et ayant une longue demi-vie s’accumule dans ces « vieux » pôles. Les cellules aux pôles plus âgés produisent moins de cellules filles et ont une probabilité de décès spontané plus élevée. On peut ainsi donner un âge à chaque pôle prenant en compte le nombre de divisions qu’il a subit. Cela permet d’attribuer un âge à chaque cellule, qui est définit comme l’âge du pôle le plus âgé. En conséquence, OTB inclus un modèle de vieillissement des bactéries pouvant cau-ser le décès spontané (nommé apoptose) d’une cellule si sa lignée dépasse une certaine valeur, paramétrable en début de simulation.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *