• Aucun résultat trouvé

1.3 Génie Logiciel, refactorisation et optimisation

1.3.4 Refactoring

Qu il s agisse de odifie u ode e ista t pou a lio e sa o eptio e s appu a t su le g ie logi iel ou pou a lio e les pe fo a es de l appli atio à travers des optimisations ou la parallélisation des calculs, il est esse tiel d ite l i t odu tio de nouvelles erreurs dans le programme. Réaliser ces modifications sans modifier le comportement de l appli atio est le ut de la efa to isatio le te e a glais « refactoring » est plus ou a e t e plo . Cette dis ipli e, plus o ple e u il peut pa aît e, a également largement été étudiée (M. a. Fowler 1999) (Feathers 2005). Le succès de cette approche s e pli ue pa l i portant volume des codes patrimoniaux (« legacy code ») dans les entreprises.

Avant toute chose, une pièce maitresse du dispositif de développement informatique est la présence de tests automatisés (Feathers 2005). Au sein du cycle de d eloppe e t d u e application, les tests automatisés peuvent être utilisés de différentes façons : afin de vérifier les pe fo a es de l appli atio , sa o ustesse ou plus si ple e t si les fo tio alit s i pl e t es l o t t o e te e t. Ce sont ces derniers tests qui permettent de réaliser des modifications de l appli atio e i i isa t le is ue d i t usio de ou elles e eu s de programmation. Une fois que de tels tests ont été mis en place, il est possible de vérifier que le comporteme t d u e appli atio est toujou s o e t e e uta t si ple e t les tests et en vérifiant que ceux-ci sont bien toujours réussis.

L id e majeure de la refactorisation est de vérifier, aussi souvent que possible, que les odifi atio s appo t es au ode de l appli atio o t pas alt so o po te e t. De ette faço , lo s u u e e eu est d te t e, il est eau oup plus fa ile de la o ige ou de revenir à une version précédente au fonctionnement adéquat. Pour faciliter ces corrections, les modifications doivent être découpées en étapes les plus élémentaires possibles pe etta t de teste aussi sou e t ue possi le le o o po te e t de l appli atio . Ai si, s il de ie t utile de s pa e u e lasse o p e a t deux catégories de comportements distincts en deux classes, cette séparation se fera en étapes aussi simples que possible. (M. Fowler 1999) i di ue u u e o e solutio o siste, ap s a oi la ou elle lasse ide

60 et créé un lien entre les deux classes, a tout d a o d d pla e un à un les attributs souhaités en compilant et testant après chaque déplacement. Dans un second temps, chaque méthode à déplacer sera prise une à une sans oublier de compiler et de tester après chaque d pla e e t. E fi , u e fois l e se le des att i uts et des thodes da s la o e lasse, il est essai e de etto e l i te fa e de ha u e des lasses pou e o se e ue les éléments essentiels. Cette méthode peut paraitre fastidieuse car elle nécessite plus de t a ail u u d oupage alis e u e seule fois ais tout le te ps pass à alise es tapes u e à u e est la ge e t o pe s pa le te ps gag su la o e tio d e eu s. Ici, si une erreur survient, celle-ci apparaitra i diate e t ap s le d pla e e t de l att i ut ou de la méthode incriminée ; la correction de celle-ci en sera donc largement facilitée.

Conclusion

Parmi les problématiques existant en modélisation informatique, la modélisation des systèmes complexes est sans doute de celles ayant connu le plus grand intérêt ces dernières années. En effet, dans beaucoup de domaines et en particulier la biologie, un nombre

i po ta t de od les peu e t t e ep se t s à l aide de o euses e tit s

interdépendantes ; c'est-à-di e à l aide d u s st e o ple e.

Comme cela a été vu dans cette partie, la modélisation de tels systèmes nécessite généralement la mise en place de modélisation multi-échelle pouvant prendre différentes formes :

- La modélisation multi-niveau dans le cas où il est possible de découper le système en sous-systèmes ayant des interactions aussi limitées que possible entre eux.

- La modélisation multi- solutio lo s u il est pas souhaita le de t aite aussi fi e e t u p o l e e tout poi t de l espa e de simulation.

- La modélisation multi-algo ith e lo s ue l utilisatio d u algo ith e pou soud e un problème donné peut évoluer dynamiquement.

C est pou pe ett e la si ulatio de tels s st es le plus fa ile e t possi le u a t développée la Plateforme Générique de Modélisation et de Simulation (PGMS). Cet outil a donc pour but de rendre la modélisation et la simulation les plus génériques possible de façon à rendre la conception de nouveaux modèles rapide. Cet objectif très ambitieux est e du possi le pa l utilisatio d u e ase de o aissa es permettant de réaliser des

61 opérations différentes sur les cellules biologiques présentes en fonction de leurs types et de l tat du ilieu où elles se trouvent. Et est ce al ul de l tat du milieu environnant, tout particulièrement le calcul des champs physicochimiques en présence, qui nécessite une importante quantité de calculs à chaque itération de la simulation.

Mais l appli atio , ui ep se te plus de 000 lignes de code, a été d elopp e à l aide d u e variante du C++ non maintenu. Il a donc été nécessaire, avant même de parler d a lio atio des pe fo a es, de la ett e à jou afi u elle fo tio e a e des logiciels de développement récents. Pou ett e à jou l appli atio , des techniques inspirées du génie logiciel ont été mises en place dans le projet. Une fois ces méthodes appliquées, nous verrons comment il est possi le d a lio e les pe fo a es de l appli atio .

Mais si des problèmes existaient au sein du code original de la PGMS, la qualité du code seule ne peut être tenue espo sa le pou le te ps d e utio important de la simulation. En effet, le eilleu ode, d aussi o e ualit soit-il, s e ute a toujou s pe da t le même temps si les modèles sont sophistiqués et nécessitent de nombreux calculs. La PGMS pe et la si ulatio d o ga es humains faisant pour cela interagir des processus complexes. Il est donc logique que ces processus (qui sont bien entendu nécessaires) pénalisent les pe fo a es de l appli ation. De manière à augmenter significativement les performances de l appli atio , nous avons donc considéré d u e pa t la parallélisation de celle-ci, et d aut e pa t, la proposition d algo ith es plus efficaces pour diminuer significativement le temps d e utio tout e o se a t le e o po te e t du od le. Dans le chapitre suivant, ous p se te o s d u e pa t, les l e ts de al ul pa all le essai es da s ot e o te te et d aut e pa t, ous a o de o s la si ulatio d auto ates cellulaire en d tailla t l algo ith e Hash-Life en deux dimensions qui sera repris et adapté en trois dimensions dans la suite de notre manuscrit.

62

63

2 Du calcul parallèle aux automates cellulaires

Introduction

Comme cela a été décrit dans le chapitre précédent, les techniques de simulation de systèmes complexes permettent de modéliser une grande variété de problèmes : du réseau de g es à la olo ie d i se tes, en passant par les interactions so iales et ie d aut es domai es. Mais pou p e d e e o pte l e se le des interactions propres à un système complexe, il est souvent nécessaire que la solution retenue tire parti de mécanismes multi- échelles permettant de gérer les interactions au sein du modèle de la façon la plus simple possible.

L i pl e tatio de tels a is es multi- helles est pas anodine. Ces implémentations doivent à la fois prendre en compte les interactions entre les différents niveaux de la modélisation et celles, au sei d u e i eau, entre les différents éléments. Pour implémenter de telles solutions, plusieurs outils sont disponibles. Les automates cellulaires so t ai si la ge e t utilis s. Ils pe ette t aussi ie d i pl e te e tai es otio s d i te a tio s ulti-échelles (Hoekstra, et al. 2008) que les processus biologiques eux- mêmes (P. a. Siregar 1997).

Bien entendu, lorsque les niveaux sont nombreux et les composants à chaque niveau en nombre important, la puissance de calcul requise pour permettre à un ordinateur de modéliser ces systèmes peut-être très importante (Masumoto, et al. 2004). L utilisatio de matériels de calcul, toujours plus puissants, est donc nécessaire afin de pouvoir travailler sur des od les les plus o plets possi les, p e a t e o pte u a i u d l e ts et d i te a tio s. L tude des s st es o ple es est ai si fo te e t li e au calcul intensif car il est ou a t u u e appli atio essite d t e i pl e t e de façon parallèle pour

o se e des te ps d e utio o e ts (Bagrodia, et al. 1998).

Ce chapitre présente, dans une première partie, les solutions existantes pour paralléliser une appli atio , e o e ça t pa l histo i ue des supercalculateurs jus u au ou elles approches hybrides de ces dernières années. Puis, dans une seconde partie nous discutons des algo ith es de si ulatio d automates cellulaires avec notamment une présentation de l algo ith e Hash-Life en deux dimensions.

64

Documents relatifs