Home

de l`analyse mathématique à la programmation

image

Contents

1. 6 2 1 Structure de l ent te 44 2 6 2 2 Structure du corps du programme 6 3 Utilisation du programme 6 3 1 Mode en ligne ccc ass ee rie rte Lu AU 6 3 2 Mode graphiqu 2 2 45 a a eee de ren e oo da 634 Exemples as aimes a LAL Ee EEG Ge wie EA o do o o ah 6 4 1 Exemple en fortran 90 6 4 2 Exemple en C Bibliographie Annexes A Etat de Part A l A 2 A 3 AA A5 A 6 L seriteres 24e See RE PEAS Re BR Hotte M es ts Logiciels et Biblioth ques Objets BED A D aS A 2 2 FreeFEM IS Meliha e gourou amp a4 dun pis We JAN at ee ea eat Ge a A a ae A DA Overture pee aha pe ON Logiciels et Biblioth ques NON Objets A 3 1 Les biblioth ques d alg bre lin aire A 3 2 Les autres biblioth ques Les classes objets pour la gestion des tableaux A 4 1 Le standard de C A 4 2 Le standard de JAVA AA IN re A Be Se et oh ty E Le Hea Oh he E AAA AFPR E oct ang af of ao 0 Gia oh te RE 2h ee td La BS Lesimailleuts aoine e a SAL ee ll an Sn We Ae Be ee 5 2 Les biblioth ques d outils parall les A
2. java pour le Java idl pour VIDL Les extensions des fichiers doivent tre standards savoir f90 pl Cpp java idl 6 3 2 Mode graphique Une interface graphique est disponible pour faciliter l utilisation de l outil makedoc Elle est constitu e d une fen tre proposant l ouverture d un fichier partir des arbres des r pertoires du syst me et selon un filtre portant sur les extensions des fichiers suivant les langages trait s par makedoc pl cpp java idl 90 La fen tre permettant le choix du fichier est illustr e par la figure 6 1 La s lection d un fichier entra ne la cr ation du fichier HTML associ et l ouverture d un browser HTML sur le fichier g n r La documentation issue d un fichier source est donc directement disponible l cran La fen tre permettant la visualisation du code HTML est pr sent e dans les exemples ci dessous 6 4 Exemples Deux exemples sont pr sent s dans cette section L un est issu d un code source en fortran 90 et l autre d un code source en C 99 6 4 EXEMPLES CHAPITRE 6 DOCUMENTATION Ouvrir Rechercher dans ci louvet x al tt E C corba faq C COURS DESS CJ cvs_codes A Desktop cnoc Nom de fichier Ouvrir Fichiers du type Program Files X Annuler FIG 6 1 Fen tre permettant le choix du fichier pour la g n ration
3. Documentation du fichier PingServer_impl cpp Include OB CORBA PingServer_skel Name class PingServer_impl virtual public POA_PingServer r Calling Sequence Unique instance of the class static void instance Calling Sequence Destructor PingServer_implo Calling Sequence Pinging the server virtual void pingo throw CORBA SystemException Calling Sequence End of the server FIG 6 5 Visualisation de la documentation g n r e pour le code source en C 2 me partie 106 Annexe A Etat de l art en biblioth ques et outils de calcul scientifique Deux aspects sont d velopp s ici les projets analogues au notre et les biblioth ques de calcul scientifiques existantes La liste des travaux reli s MOOCS est longue Le but de ce chapitre n est pas d en faire la liste compl te mais de s lectionner certains projets ou r alisations en fonctions de certains crit res que nous vous proposons de d finir paragraphe A 1 puis les paragraphes suivants proposeront une br ve description de ces travaux A l Les crit res Le premier crit re est celui de la disponibilit des biblioth ques ou logiciels Ce projet de par sa d finition n a de sens que s il reste dans le domaine public et donc l ensemble des l ments qui nous sert de base ou de composants doivent tre galement disponible pour la recherche Donc ne seront examin s que les outils du dom
4. R solution du probl me par inversion du probl me alg brique correspondant RP ON POUSSE DT DS Visualisation de la solution Construction de la g om trie Consid rons par exemple le choix d une triangulation constitu e de mailles rectangulaires On construit le domaine continu et on l ajoute au probl me On obtient ainsi les instructions suivantes Pb construction Problem problem Test Continuous Domain int nbsegi nbseg2 opt_dom_elm opt_dom_som cout lt lt TST DOMAIN enter nbsegi cin gt gt nbseg1 cout lt lt endl cout lt lt TST DOMAIN enter nbseg2 cin gt gt nbseg2 cout lt lt endl opt_dom_som 0 opt_dom_elm 0 Il Domain geom new Domain TRIA RECT 2D nbsegl nbseg2 opt_dom_elm opt_dom_som problem addDomain geom Construction des op rateurs et des variables Dans l exemple trait nous avons besoin de l op rateur de rigidit associ au second membre et la solution Les instructions suivantes permettent la construction de ces entit s et leur ajout au probl me trait 76 CHAPITRE 4 APPLICATION 4 3 MISE EN UVRE Continuous operators RigiOperator A geom Linear Operator of the test problem Continuous Variable VolumeVariable ADatas geom For Linear Operator VolumeVariable ASol geom For Linear Operator problem addOperator Rigi amp A problem addDatas Rigi amp ADatas problem addSolut
5. Les canaux d v nements permettent plusieurs fournisseurs et consommateurs de se connecter et peut g rer diff rents modes de fonctionnement mod le push pull et hybrides Le mod le push Les fournisseurs poussent les v nement dans le canal qui son tour les poussent vers tous les consommateurs enregistr s Les fournisseurs sont donc les initiateurs actifs des v nements et les consommateurs attendent passivement de les recevoir Le canal d v nement joue le r le du notifieur Le mod le pull Les consommateurs tirent les v nements du canal qui son tour les tirent des fournisseurs Les consommateurs sont les initiateurs actifs des v nements et les fournisseurs attendent passivement que les v nements leur soient demand s Le canal joue le r le du procureur Le mod le hybride push pull Les fournisseurs poussent les v nements dans le canal o ils sont tir s par les consommateurs Les deux sont donc actifs Le canal joue le r le de pile car il stocke les donn es des v nements en attendant qu elles soient tir es par les consommateurs Le mod le hybride pull push Le canal tire les v nements des fournisseurs et les poussent vers les consommateurs Les deux sont passifs et le canal a le r le d agent intelligent 123
6. Louvet Violaine per Hostname clouange Temps CPU 10 0 louvet Etat du calcul Running Ostream Error 2 E 6 Contr le du calcul antennes Stop Pause Format ae 1 int double Propri taire cane Violalne Louvet 744 Vilaine Louvet 744 Error Al E Choix des donn es Coord X ai O aucun int double Solutio Valider Documentation Documentation Suppression d finitive Coord Y NDes Oin double Supprimer du serveur FIG 5 6 Fen tre permettant le choix des donn es pour la visualisation graphique d un flux via Vinterface graphique Pour une courbe 2D il faut donc indiquer les donn es en abscisses elles peuvent tre simplement les indices du tableau des donn es en ordonn es dans ce cas il faut choisir Aucun ou un des l ments du flux les donn es en ordonn es il faut choisir un des l ments du flux Dans le cadre de notre exemple l l ment entier du flux Error correspond l it ration et l l ment double correspond l erreur pour cette it ration Il est donc logique de choisir en abscisse le num ro de l it ration donc l l ment entier et en ordonn e la valeur de l erreur donc l l ment double Ce choix conduit au trac de la courbe de l erreur par rapport aux it rations illustr e par la figure 5 7 93 5 3 EXPLOITATION GRAPHI
7. ind pendance de l impl mentation le client ne sait pas comment l objet est impl ment ind pendance de l architecture ind pendance de l OS ind pendance du protocole ind pendance du transport C 3 Utilisation des services CORBA Un service est caract ris par les interfaces qu il fournit et par les objets qui fournissent ces interfaces Un service peut impliquer un seul objet plusieurs objets qui fournissent le m me type d interface ou plusieurs objets qui fournissent des types d interfaces distincts qui h ritent d un type d interface de service Chaque ObjectService fournit son service un jeu d utilisateurs qui sont typiquement des applications mais qui peuvent tre d autres ObjectServices Nous ne d crirons ici que les services utilis s dans notre projet C 3 1 Le service de Nommage Naming Service Le service de nommage fournit le principal m canisme travers lequel la plupart des objets d un syst me bas ORB situent les objets qu ils veulent utiliser Il quivaut aux pages blanches les objets sont d sign s par des noms symboliques et l ob tention des r f rences d objets ne n cessite plus de passer par un support de cha ne de caract res fichier e mail Il permet partir d un nom d obtenir une r f rence sur l objet correspondant C est l qui valent du DNS qui traduit des noms de domaine internet en adresse IP Le service de nommage pe
8. pnos ostip1iDdSTp s 9 estyezosfp as g udra3ntos ey suuop 181981Q SUWR AOIA nunuoo snayesadO NUYUO ewWe qoig ST T u 4tutsep UT atutsep UT FTUTIOP y UuO0TINTOS eT SUUOP 4 pnos gt 1 ATUTFEP e6e 20 S O arstoyo ot uo esh919sIQ O 1TSTOYO Ingddo arneg gt oz PT Fic 2 1 Diagramme de collaboration global de la r solution 5 2 3 CONCEPTION PR LIMINAIRE CHAPITRE 2 ANALYSE MATH MATIQUE du diagramme de classe 2 3 met en valeur les diff rentes classes ainsi que leurs responsabilit s respectives 2 3 Conception pr liminaire Le but de la conception pr liminaire est de concevoir des encapsulations m tiers Nous avons jusqu pr sent travaill sur un premier d coupage logique correspondant aux niveaux d abstraction des tapes de la r solution du probl me L tude du mod le d analyse que nous venons d obtenir illustr par le diagramme 2 3 nous conduit r aliser un deuxi me d coupage m tier en effectuant des regroupement de classes d un point de vue s mantique Il s agit de rassembler les classes ayant des logiques m tier quivalentes D une fa on g n rale elles sont li es par le m me substantif Le diagramme du mod le d analyse nous am ne naturellement d finir les paquetages suivant le paquetage Probl me qui r unit les classes Probl me Continu Probl me Discret et Probl me Alg
9. 7 6un 3 1 3uny 2 5 Aun_1 5 6un Aun 72 5 6un 5 61 12un 4 13un 3 107 6un 2 77 6un 1 15 4up 66 CHAPITRE 4 APPLICATION 4 3 MISE EN UVRE On peut maintenant tablir le diagramme pour les diff rences finis La solution u vit dans le m me espace V inclus dans H Q le second membre f dans son dual V qui contient H7 RER V Pht lPi y Es we pi T l Ph Vp EE v 4 3 Mise en uvre Dans ce paragraphe nous d finissons le probl me r soudre et les diff rentes tapes qui condui ront la d finition des classes et de leurs m thodes Orientation Le travail de mise en uvre de la m thodologie que nous proposons dans ce rapport s appuie sur un travail pr c dent qui tait une analyse objet de la programmation des l ments finis pour le Fortran 90 Le pr sent travail est plus ambitieux puisqu il doit permettre de choisir plusieurs types de m thodes de discr tisation Les raisons de ce choix sont la rapidit de l criture au moins pour les l ments finis et la r utilisation d un savoir faire Tl est clair que les options retenues pour cette mise en ceuvre sont propres ce contexte et pourront tre remises en cause dans des versions ult rieures 4 3 1 D finition du probl me La question pos e est la suivante 1 On veut r soudre le probl me 4 1 pour tout second membre f donn de fa on analytique Le domaine de calcul est le carr unit 0 1
10. Documentation g n r e Les figures 6 2 et 6 3 pr sentent la visualisation du code HTML g n r par makedoc partir du code source du programme fortran 90 ci dessus 6 4 2 Exemple en C Programme document Le code C consid r est constitu d un source d ent te h et de Pimpl mentation corres pondante cpp donn s ci dessous Fichier PingServer_impl k doc 101 6 4 EXEMPLES CHAPITRE 6 DOCUMENTATION Documentatio er geo 90 GIE Internal Documentation for home louvet CODES A RCHIVES TOOLS makedoc test geom_libr f 90 B EF F 00 Bibliotheque d Elements Finis Fortran 90 Orientee Objet Copyright Version and Updates Equipe Analyse Num erique Universite de Paris Sud 91405 ORSAY CEDEX FRANCE Author Y LOUVET Version 0 1 Description GEOM_LIBR Module of the interface of geom Modifications 02 2000 0 1 V Louvet Cr ation Name FIG 6 2 Visualisation de la documentation g n r e pour le code source en fortran 90 1 re partie G TOOCS Ncopyright Equipe Analyse Numerique Universite de Paris Sud 91405 ORSAY CEDEX FRANCE author V Louvet version 1 0 description Classe servant implementant l interface CORBA Ping pour le test de la connexion au serveur Classe Singleton modifications 31 12 02 1 0 V Louvet Creation skip 102 CHAPITRE 6 DOCUMENTATION 6 4
11. mentation doc qui signale le d but de la documentation c est de cette partie que information constituant la documentation au format HTML est extraite end qui en signale la fin Ces deux mots cl s se trouvent dans les niveaux 1 et 2 de la documentation levell et level2 6 2 1 Structure de l ent te L ent te va servir commenter les informations g n rales du programme Pour cela on d finit un certain nombre de mots cl s qui permettent de structurer ces informations doc levell comme on l a d j vu indique le d but de la documentation Il peut tre suivi du nom de la biblioth que laquelle est rattach le programme copyright levell indique le paragraphe du copyright author levell indique l auteur du programme version levell donne le num ro de version en cours mettre jour chaque changement description levell d crit le r le du fichier modifications level2 indiquent les modifications qui ont t effectu es sur le fichier avec la date la version correspondante l auteur et la nature des modifications todo level2 donne les futurs d veloppements effectuer 6 2 2 Structure du corps du programme Le programme est comment par les mots cl s suivants qui permettent de lire directement les informations dans le code include levell indique les noms des fichiers utilis s par le fichier courant name levell donne le nom de la routine classe module
12. APPLICATION 4 3 MISE EN UVRE du nombre de points sur les cot s g n rateurs de la position de ceux ci qui peut tre donn e explicitement pour les grilles non r guli res ou recalcul e partir d un point d origine et de pas dans chaque direction pour les grilles r guli res A partir de ces informations il est possible de construire un maillage et donc de faire des l ments finis sur une grille 4 3 6 La classe Method La classe g n rique de la m thode de discr tisation se nomme Method On rappelle que c est une classe abstraite ind pendante du choix de la m thode de discr tisation Sa finalit est la construction des op rateurs l mentaires restreints un domaine de contr le Ceux ci sont utilis s par les instances des classes concr tes d riv es de la classe Operator pour la discr tisation des op rateurs du probl me 4 1 Cette classe utilise le maillage du domaine de calcul classe DiscreteDomain Elle est capable de fournir par op rateur voir 4 5 et 4 6 les nombres de lignes et de colonnes globaux le nombre de domaine de contr le par domaine de contr le le nombre de lignes et de colonnes les matrices ou les coefficients de la matrice de la repr sentation discr te de Pop rateur l mentaire L exemple d application nous conduit sp cialiser la classe Method pour les op rateurs l mentaires du probl me trait s c est dire l op rateur de masse et
13. E g Object ES ORB ORB a DSI DIT 8 E Interface Interface Adapter R seau Noyau de l ORB client Noyau de l ORB serveur Fic C 2 Processus d invocation des requ tes 121 C 3 UTILISATION DES SANNEK CORIORBA MECANISMES DE FONCTIONNEMENT Les requ tes vont de application cliente via PORB vers l application serveur 1 Le client peut faire une requ te en utilisant un talon stub statique ou en utilisant la Dynamic Invocation Interface 2 Le noyau de PORB client localise l objet cible Il active le serveur si celui ci n est pas d j en cours d ex cution puis il transmet les arguments et la requ te au noyau de l ORB serveur 3 Le noyau de ORB serveur renvoie la requ te l adaptateur d objets Object Adapter qui active l objet cible 4 L adaptateur d objets renvoie la requ te au servant impl mentant l objet cible Comme le client le serveur peut choisir entre un envoi statique ou dynamique le servant utilise alors la Dynamic Skelton Interface 5 L ORB retourne tous les arguments de type out et inout lorsque l appel de la m thode est termin ou retourne une exception si l appel a chou Pour le client l invocation d une requ te a les caract ristiques suivantes localisation transparente serveur transparent le client n a pas besoin de conna tre le serveur impl mentant l objet ind pendance du langage entre client et serveur
14. EXEMPLES BTE Description GEOM_LIBR Module of the interface of geom Modifications 02 2000 0 1 V Louvet Cr ation Name module geom_libr Include contxt_desc General purpose Module contxt_libr Input ouput toolkit Module ftrace_libr Flow Trace Module geom_desc Geom Module Calling Sequence subroutine gm_rect_2d geom amp x1 x2 yl y2 amp nbx nby End of Internal documentation FIG 6 3 Visualisation de la documentation g n r e pour le code source en fortran 90 2 me partie ifndef PINGSERVER_IMPL_H define PINGSERVER_IMPL_H using namespace std include include lt 0B CORBA h gt include PingServer_skel h name class PingServer_impl virtual public POA_PingServer skip private protected Constructor PingServer_impl 103 6 4 EXEMPLES CHAPITRE 6 DOCUMENTATION public Ncalling_sequence Unique instance of the class static void instance calling_sequence Destructor PingServer_imp1 Ncalling_sequence Pinging the server virtual void ping throw CORBA SystemException calling_sequence End of the server static void end skip endif PINGSERVER_IMPL_H Fichier PingServer_impl cpp doc skip include PingServer_impl h include CorbaServer h M cucu ses essieu te de Null initialization of static members PingServer_var PingS
15. La construction des matrices d pend de la m thode de stockage classe Storage Cependant la manipulation de ces matrices est ind pendante de la fa on dont elles sont stock es La construction des instances de Algebric_Problem se fait gr ce aux entit s discr tes des instances de Discret_Problem associ es Algebric_Problem name string systems list lt LinearSystem gt AlgebricProblem string solve string int double void evalu void addSystem string Matr Vect Vect void cg LinearSystem int double void struct LinearSystem stock string A Matr x Vect y Vect Inversion par gradient conjugu du syst me lin aire Fic 4 3 Classe Algebric_ Problem 4 3 3 Le paquetage Variable Au niveau continu la classe Variable se fait l expression des espaces fonctionnels utilis s pour la r solution du probl me Au niveau discret la classe DiscreteVariable refl te les espaces discrets associ s aux espaces continus du niveau sup rieur Enfin au niveau alg brique la classe Vect repr sente les objets informatiques intervenant dans les syst mes lin aires 4 3 4 Le paquetage Operateur Ce package permet de d finir les op rateurs l mentaires n cessaires au probl me Il en assume la discr tisation en fonction de la donn e d une m thode de discr tisation et conduit des matrices au niveau alg brique profond par la connaissance d une m thode de stockage L
16. Le nom appara t alors au milieu de la ligne qui la symbolise L extr mit d une association est appel e r le Le r le d crit comment une classe voit une autre classe au travers d une association Chaque r le d une association porte une indication de multiplicit qui montre combien d objets de la classe consid r e peuvent tre li s un objet de l autre classe On trouve les cardinalit s suivantes 1 un et un seul 0 1 z ro ou un M N deMaN de z ro plusieurs 0 de z ro plusieurs 1 de un plusieurs La figure B 3 montre la repr sentation graphique d une association entre classes Fic B 3 Mod lisation UML d une association entre classes On trouve galement des associations particuli res dans lesquelles une des extr mit s joue un r le pr dominant par rapport l autre il s agit des agr gations Elle se repr sente par un petit losange du cot de l agr gat Les crit res suivant impliquent une agr gation 115 B 4 GENERALISATION ET HERITAGE ANNEXE B NOTATIONS UML une classe fait partie d une autre classe les valeurs d attributs d une classe se propagent dans les valeurs d attributs d une autre classe une action sur une classe implique une action sur une autre classe les objets d une classe sont subordonn s aux objets d une autre classe La contenance physique est un cas particulier de l agr gation appel composi
17. call even_post qui est attendu call even_wait par d autres taches D autres fonctions telles que des barri res existent dans ce type de biblioth ques de synchroni sation Des syst mes de gestions de t ches par liste d attente ont t programm s de cette fa on voir et A 6 2 Les biblioth ques de passages de messages Les biblioth ques de passages de messages sont adapt es la programmation de code parall le pour des machines 4 m moires distribu es bien que des impl mentations aient t faites pour des machines 4 m moire partag e voir mixte Les codes de calcul peuvent tre du type MIMD mais la plupart du temps ils sont SPMD Le principe est d envoyer des messages et d en attendre Les synchronisations et les tranferts d informations sont r alis s par ce biais Il est n cessaire de citer les deux principales biblioth ques que sont PVM Parallel Virtual Machine et MPI Message Passing Interface Il en existe d autre notament P4 sur laquelle est construite la version publique de MPI Notons galement que de nombreux constructeurs proposent des versions optimis es des biblioth ques PVM et MPI bien que disposant de leurs propres biblioth ques PVM et MPI ont un mode de fonctionnement diff rent PVM poss de des fonctions de gestion de type console et a deux modes de lancement des processus soit par la console soit classique ment MPI ne poss de pas de fonction de gestion et les
18. laboration du logiciel GTOOCS doit prendre en compte les sc narii secondaires des cas d utilisation c est dire les sc narii d erreur et d exception Il faut maintenant int grer un comportement du logiciel pour le cas o les diff rents pas du sc nario nominal ne peuvent tre r alis s 3 9 2 Nouvelles fonctionnalit s La prochaine version du logiciel doit int grer de nouvelles fonctionnalit s L expression de ces nouveaux besoins se d compose en plusieurs fonctions la possibilit de relire les donn es d une ex cution d j termin e la possibilit de modifier les donn es d une ex cution de type stream en compl ment du type Ostream Vacc s des outils de visualisation partir de l interface graphique AVS gnuplot VTK la mise en oeuvre d une biblioth que d alerte qui permettra par un moyen d fini mail v nement sur l interface graphique de pr venir Putilisateur d un v nement divergence d un calcul D autre part l architecture du logiciel doit voluer vers la mise en place d une solution multi serveurs qui permettra d optimiser les performances de transfert de donn es entre des machines lorsque la machine de calcul est tr s loign e du serveur Enfin Poptimisation du timing de transfert de donn es am liorera les performances des codes instrument s 60 Deuxi me partie De la conception la programmation 61 Chapitre 4 Application la r solut
19. le de la r solution Une fois le probl me assembl le d veloppeur peut demander sa r solution Celle ci va consister en la discr tisation du probl me c est dire en la cr ation du Probl me Discret associ L existence de l objet Probl me Discret cr e par un objet Probl me Continu n a de r alit que pendant la dur e de vie de cet objet Probl me Continu D autre part il ne peut correspondre qu cet objet Probl me Continu particulier On est donc dans le cas d une agr gation forte ou composition Par contre les objets repr sentant les op rateurs continus les variables continues et les do maines continus peuvent avoir une existence en dehors de l objet Probl me Continu les utilisant 18 CHAPITRE 2 ANALYSE MATH MATIQUE 2 4 CONCEPTION D TAILL E En effet l instanciation de plusieurs Probl me Continu est parfaitement possible et les quations math matiques qu ils mod lisent peuvent tr s bien comporter un ou plusieurs op rateurs continus ou variables continues identiques Il faut dans ce cas viter la duplication d instances quivalentes On est donc dans le cas d agr gation ordinaire dite agr gation faible Pour d finir un probl me discret il faut construire la liste des op rateurs discrets approchant les op rateurs continus du probl me continu cor respondant la liste des variables discr tes approchant les donn es du probl me continu correspondant la li
20. lt error ctxt Solution lt lt it lt lt nsolu ctxt Residu lt lt it lt lt nresi if error lt epsl epsl break 88 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 3 EXPLOITATION GRAPHIQUE 5 3 Exploitation graphique Cette interface graphique est propos e pour simplifier la visualisation et l analyse des flux distribu s disponibles sur le serveur Elle a t d velopp e en Java pour des raisons de portabilit pour b n ficier de la g n ration directe de code par les compilateurs idl Elle est constitu e d une fen tre principale dans laquelle s ouvrent d autres fen tres secondaires Les exemples graphiques pr sent s dans les sections suivantes sont issus de l instrumentation pr c dente et concerne un code utilisant les librairires math matiques du projet GTOOCS 5 3 1 D marrage de l interface L interface graphique utilise les classes Java situ es dans les r pertoires suivant SQL JAVA classes utilisateurs IDL JAVA classes des objets distribu s CLIENT JAVA classes instrumentales D autre part l utilisation de l impl mention Corba Orbacus ainsi que les biblioth ques de tra age de courbes jfreechart n cessite de rajouter dans la variable d environnement CLASSPATH la ligne suivante usr local src jfreechart 0 9 4 lib jcommon 0 7 1 jar usr local src ifreechart 0 9 4 lb jfreechart 0 9 4 jar usr local lib OBEvent jar usr local lib OB jar
21. pertoires les ovales correspondent aux noms qui peuvent tre interpr t s comme des fichiers Contexte de Nom Executions Contexte de Nom Execution2 Execution2 Execution Ostreaml Ostream Ostream2 Ostream Contexte de Nom Executionl Executionl Execution Ostreaml Ostream Ostream2 Ostream Fic 3 27 Gestion des contextes de nom relatifs aux donn es et ex cutions De facon analogue les fabriques des objets communiquants les pages jaunes des ex cutions et l objet de ping du serveur sont r f renc s sur le service de nommage sous le contexte de nom racine selon le sch ma 3 28 Contexte de Nom Root ExecutionFactory OstreamFactory YPExecutions AccessAuthorizationFactory FIG 3 28 Gestion du contexte de nom racine Gestion des canaux d v nements La mise jour de certaines des donn es entre le serveur et les applications clientes IHM codes de calcul est r alis e par l interm diaire des canaux d v nements Lors de la cr ation d un nouvel objet communiquant de type Execution deux nouveaux canaux d v nements sont cr s par le biais de la fabrique Ainsi les donn es temps r el relatives un objet Execution ainsi que les commandes de contr le de cette ex cution transitent 4 travers les canaux d v nements propres a cette ex cution 53 3 7 CONCEPTION D TAILL E CHAPITRE 3 ENVIRONNEMENT 3 7 2 Conception d taill e du sous sys
22. rences finis ds g d HAA AS AP aa ee a RE 43 9 Lar classe Storage li o sis tarada AAA a 4 3 10 Construction informatique du probl me elliptique 5 Environnement de travail 5 1 5 2 D marrage du Serveur lt a csi af ai A RE a Hl Services CORBA 8 2 55506 ne Swede eee bbe AR Ras A NN Instrumentation ur e pe ee Gm a ae AE tee d a 5 2 1 Langages disponibles 02222 Compilations daa sacha DURS A o EL MAR Ad do e Lies 5 2 3 Initialisations finalisation 5 2 4 Sortie standart 5 Cont Ll eo le weg et te ele NN eh RE nes 5 2 5 Profiling du code Flow trace 5 2 6 Instrumentation d un fichier source 5 3 Exploitation graphique 5 3 1 D marrage de l interface 5 3 2 Fen tre principale d accueil 5 3 3 Fen tre de connexion 5 3 4 Fen tre des donn es utilisateur 5 3 5 Fen tre des calculs 5 8 6 Fen tre d une ex cution particuli re 5 8 7 Fen tre d un flux particulier 5 3 8 Fen tre de documentation 6 Documentation 6 1 Niveau de documentation 6 2 Structuration de la documentation
23. s math matiques la conception et la mise en uvre de codes de calcul Chaque enseignant doit ainsi pouvoir agir dans le domaine de comp tence qui l int resse en ignorant le reste Cela rejoint tout fait les l ments d analyse avanc s pour la recherche CHAPITRE 1 PHILOSOPHIE ET MOTIVATIONS 1 1 ENVIRONNEMENT L apprentissage des langages d aujourd hui n cessite des tapes plus nombreuses Le Fortran 77 tait un langage simple l analyse proc durale donnait une m thodologie relativement naturelle on avait un ensemble simple et concis rapidement ma trisable La situation actuelle est bien diff rente avec des langages comme C JAVA ou encore FORTRAN 95 qui prennent toute leur mesure dans une conception objet des codes de calcul m me si FORTRAN 95 n est pas vraiment un langage objet FORTRAN 2000 le sera Il n est pas raisonnable de mettre sur le march du travail aussi bien dans la recherche que dans l industrie des tudiants ne connaissant pas le concept d objet Cette derni re remarque aura une influence pr pond rante sur notre cahier des charges Si nous devons prendre en compte la programmation objet il devient donc important de pro poser une m thodologie de travail illustr e par de nombreux exemples plus ou moins sophistiqu s afin les tudiants utilisent ceux ci pour assimiler pas pas les rouages complexes de ces langages mais aussi l analyse objet L adoption par les tudiants d une m
24. thodologie de travail a d autres avantages L enseignant peux ainsi plus facilement retrouver l essentiel dans les travaux de ses tudiants Les tudiants que nous formons deviendront leur tour enseignants ou ing nieurs Notre am bition est de leur donner une formation aussi compl te que possible dans le domaine th orique comme dans le domaine applicatif En effet il nous parait souhaitable voir indispensable que m me les plus th oriciens puissent illustrer leurs propos informatiquement Enfin pour les tu diants qui se destinent une carri re industrielle il est n cessaire qu ils aient la ma trise les outils d aujourd hui utilis s par l industrie 1 1 3 L environnement informatique Comme nous l avons d j signal nous disposons de plusieurs ressources informatiques travers les moyens de l quipe le centre de m so informatique de l Universit et les centres nationaux IDRIS et CINES Le r le de chacune de ces trois structures au niveau de la puissance du mat riel informatique est diff rent mais surtout compl mentaire L accessibilit est galement differente de Vaccessibilit en continu des deux premiers niveaux la demande pr alable de moyens sur les centres nationaux Au niveau local nous avons toujours souhait mettre la disposition de nos utilisateurs des outils de d veloppement dont les architectures sont les reflets des principales gammes de machines existantes Dans ce conte
25. une conception orient e objet incitant plut t l utilisation des langages objets comme le C la n cessit de proposer une interface graphique compatible avec le serveur CORBA natu rellement d velopp e en Java pour des raisons essentielles de portage 5 2 2 Compilation L instrumentation d un code utilise des biblitoh ques qu il faut inclure dans la compilation Ainsi la g n ration des fichiers objets correspondants aux fichiers instrument s n cessite l inclu sion sur la ligne de compilation des fichiers ent tes contenus dans les r pertoires suivants Client CPP classes instrumentales SQL CPP classes utilisateurs IDL CPP classes des objets distribu s De fa on analogue la g n ration de lien pour la cr ation d un ex cutable n cessite la prise en compte des librairies suivantes Client CPP client_cpp a SQL CPP sql_cpp a IDL CPP corba_cpp a D autre part il faut galement faire le lien avec les biblioth ques de ORB Orbacus sous la forme 10B 1JTC lpthread 1CosNaming 1CosEvent 80 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 2 INSTRUMENTATION 5 2 3 Initialisations finalisation Le programme principal du code instrument doit faire appel une m thode d initialisation init d clar e dans l ent te Global h et dont le r le est multiple initialiser les r f rences CORBA instancier l objet unique Process instancier
26. 1 Il est ainsi naturel de repr senter le probl me formel 2 1 en tant qu entit elle m me manipulant toutes les autres Probleme cette abstraction correspond un ensemble coh rent dans lequel vivent et interagissent les autres entit s Nous venons de conceptualiser les l ments math matiques qui sont mis en uvre lors de la d finition du probl me r soudre Il faut maintenant prendre en compte les diff rentes phases de la r solution D un point de vue textuel on peut les d crire de la fa on suivante le probl me formel est d fini sur des espaces continus Il s agit d une ou de plusieurs quations portant sur des domaines continus faisant intervenir des op rateurs continus agissant sur des variables continues le probl me discret est obtenu par le choix d une m thode de discr tisation qui permet de discr tiser les op rateurs et variables du probl me continu en op rateurs discrets et variables discr tes et conduit au choix d un maillage du domaine continu les syst mes lin aires sont obtenus par assemblages des matrices et vecteurs issus des op rateurs et variables discrets Le stockage d pend de la forme des matrices L inversion de ces syst mes peut tre r alis e de mani re directe ou it rative Le d roulement global d une r solution peut ainsi tre d crit l aide des concepts que l on vient de d finir Ce sc nario est illustr par le diagramme de collaborati
27. 3 4 ANALYSE CHAPITRE 3 ENVIRONNEMENT Fic 3 5 Diagramme des classes issues de l analyse du domaine 36 CHAPITRE 3 ENVIRONNEMENT 3 4 ANALYSE O ExecutionList Utilisateur efe la liste des ex cutions 2 Demande l acc sy une ex cution ExecutionsView 35 s permissions de l ex cution AccessAuthorization 4 VerifieAcces EndUger AccessAuthorization VerificateurPermissions ExecutionView Fic 3 7 Diagramme de s quence du cas d utilisation 5 R alisation de UC 6 Visualiser les donn es d une ex cution On suppose que la pr condition de PUC est r alis e et donc que l utilisateur a acc d l ex cution qui l int resse Le diagramme 3 8 pr sente le d roulement du sc nario de cet UC Q Execution 1 R cup re les infos ex cution Utilisateur 3 Choisit les donn es et le de visualisation 2 R cup re la liste des donn es ExecutionView DataList 6 trai a sygetData GestionnaireData 5 getData VisualisationMethod 7 Affiche HO O VisualTool Data DatasView Fic 3 8 Diagramme de s quence du cas d utilisation 6 R alisation de PUC 1 Suivre l ex cution Cet UC est obtenu par la r alisation de ces UC inclus c est dire les UC 4 5 et 6 Il n y a donc pas de diagramme propre ce cas d utilisation 37 3 4 ANALYSE CHAPITRE 3 ENVIRONNEMENT R alisation de l UC 2 Contr le
28. 5 7 5 8 6 1 6 2 6 3 6 4 6 5 B 1 B 2 B 3 B 4 B 5 C 1 C 2 Gestion du contexte de nom racine 4 44 53 Classes Corba du client 54 Diagramme des classes de gestion d v nements 54 Diagramme de composants des entit s relatives aux objets distribu s 56 Diagramme de composants relatif la base de donn es utilisateurs 97 Diagramme de composants relatif aux programmes clients 97 Diagramme de composants relatif aux librairies ext rieures 58 Diagramme de composants relatif l ex cutable du serveur 58 Diagramme de composants relatif aux ex cutables des codes de calcul 58 Diagramme de composants relatif l ex cution de l interface graphiquel 59 Classe Problems 2 2 48 a a at ee ge Ss ae ae aden ee Me Seay by sat Je 68 Classe Discret Probl mes ia 2 a ee eh qe donnee I Sees ie 68 Classe Algebric Problem 4 444 69 Classe DiscreteDomain 70 Hi rarchie de la classe Method relative aux l ments finis 73 Hi rarchie de la classe Method relative aux diff rences finies 74 Hi rarchie de la classe Storage 75 Fen tre d accueil et de connexion de l interface graphique 90 Fen tre donnant les informations
29. 77 pour la r solution des probl mes d alg bre lin aire les plus communs syst mes lin aires probl mes de moindres carr s li n aires probl mes de valeurs propres et de d compositions en valeurs singuli res CLAPACK est la version en langage C de LAPACK Elle a t obtenue partir de la version FORTRAN gr ce f2c un traducteur de FORTRAN vers C voir GNU Son int r t est moindre LAPACK90 95 est une encapsulation de la version FORTRAN 77 Deux types d encapsulations sont propos es La premi re tr s proche de LAPACK pour ce qui est des fonctionalit s permet de s affranchir du typage des sous programmes en fonction de celui des matrices et vecteurs La notion d interface g n rique est fortement utilis e La seconde version est plus FORTRAN 90 Elle exploite galement la notion d interface g n rique mais on utilise ici d autres moyens de distinction des sous programmes comme celui du nombre d arguments LAPACK est devenu un projet plus ambitieux qu une simple encapsulation des programmes FORTRAN La probl matique des classes de tableaux est pos e Ce point particulier fait d objet d un paragraphe sp cifique voir A4 TNT est l ensemble des classes tableaux utilis es par LAPACK 109 A 4 LES CLASSES OBJETS POUR LA GESTION DES TABARNEXE A ETAT DE L ART SCALAPACK est une version parall le de LAPACK adapt e aux machines m moire distri bu e Elle utilise la
30. MATH MATIQUE 26 Chapitre 3 Analyse et conception environnement Introduction La conception g n rale du projet s appuie sur une approche objet de la probl matique globale comprenant la partie calcul scientifique mais aussi l ensemble des outils d instrumentation et de d veloppements associ s Elle n cessite la mise en oeuvre d une m thodologie adapt e cet objectif Toute m thodologie peut tre consid r e comme la compl tion d un formalisme et d un pro cessus Dans le cadre de ce projet notre m thodologie bas e sur le formalisme UML Unified Modeling Language est inspir e du processus UP Unified Process UML est un support graphique et formel pour la mod lisation d un logiciel notations stan dardis es avec une s mantique pr cise UP d finit un ensemble d tapes permettant de mener bien l laboration d un logiciel 1 conceptualisation des besoins 2 analyse et r alisation des fonctionnalit s 3 prise en compte de l architecture et des contraintes techniques 4 conception 5 impl mentation et tests Ces diff rentes phases repr sentent une it ration du cycle de vie du logiciel Le cycle de vie it ratif repose sur l id e qu il vaut mieux r aliser un syst me complexe en plusieurs fois par volution La premi re it ration permet d arriver rapidement un prototype du logiciel Les it rations suivantes permettent de corriger les probl mes apparus lors
31. Stop Red marrer Action de red marrer l ex cution d un code Restart Source Fichier source faisant partie des sources d un Source code instrument Doc Fichier de documentation relatif un Source d un Doc code instrument InformationsAcc s Informations n cessaires un Utilisateur pour acc der AccessData la liste des ex cutions des codes instrument s ListeExecutions Liste de toutes les ex cutions des codes intrument s ExecutionList disponibles un instant donn Autorisation Acc s Autorisation propre chaque ex cution pour acc der AccessAuthorization ses donn es dans un souci de confidentialit ListeDonn es Liste de toutes les Donn es disponibles relatives 34 CHAPITRE 3 ENVIRONNEMENT 3 4 ANALYSE DataList une ex cution d un code instrument Donn e Information disponible relative une ex cution Data d un code instrument ModeVisualisation Technique de visualisation choisi pour visionner VisualizationMethod une Donn e L tablissement de ce glossaire est compl t par un diagramme de classe UML 3 5 Pour des questions de g n ricit les noms des classes et des objets du diagramme correspondent aux substantifs anglais du glossaire 3 4 2 Analyse applicative Les classes d finies lors de l analyse du domaine servent pour l analyse applicative qui consiste r aliser les cas d utilisation gr ce des diagrammes de s quences On dissocie les respons
32. TRIA S 3 Les points d int grations sont les sommets 2D TRIA G 1 Un point de Gauss 2D TRIA G 3 Trois points de Gauss 2D TRIA G 4 Quatre points de Gauss sur un carr 2D QUAD S 4 Les points d int grations sont les sommets 2D QUAD G 4 Quatre points de Gauss L ajout d un nouveau type d int gration se fait simplement en modifiant le constructeur de la classe par l insertion de ce nouveau cas 72 CHAPITRE 4 APPLICATION 4 3 MISE EN UVRE Method_Factory create DiscreteDomain operator string type string Method nb_ctl_dom int nb_lin int nb_col int nb_lin_loc int int nb_col_loc int int lin int int int col int int int val int int int double nb_ctl_dom nb_lin nb_col nb_lin_loc nb_col_loc lin col val nombre nombre nombre nombre nombre num ro num ro valeur de domaines de contr le total de lignes total de colonnes local de lignes local de colonnes global de la ligne global de la colonne du coefficient The_Fem FEMPk Finite_Elements_Pk init_ef DiscreteDomain type string FEMPk The_Fem FEMPk struct FEMPk dims int nb_soms int som_coo int int double dims int nb_elms int nb_soms int nb_dlibs int nb_dlib_elm int dlib_zon Tab lt int 1 gt jacb_elm appl_elm dlib_elm ref_elmt num_intg fem_base Tab lt double 1 gt Tab lt double 2 gt T
33. Violaine 1 2362 3415 X A TA Texte Graphiques Statistiques Format lon formatt Permissions FIG 5 5 Fen tre permettant la visualisation textuelle d un flux par l interface graphique 92 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 3 EXPLOITATION GRAPHIQUE Visualisation sous format graphique L acc s aux items du menu Graphiques n est possible que pour les flux formatt s Le menu Graphiques contient deux sous menus 2D pour le trac de courbes en 2 dimensions 8D pour le trac de courbes en 3 dimensions non encore impl ment Chacun de ces sous menus comporte deux items Courbe sur tous les enregistrements lorsque chaque l ment du flux est de taille 1 il n est pas possible de tracer une courbe avec une seule valeur La seule possibilit est donc de consid rer l unique valeur de tous les enregistrements Ce choix est indisponible dans le cas contraire Courbe sur le dernier enregistrement lorsque chaque l ment du flux est de taille gt 1 en g n ral de grande taille il n est possible de tracer une courbe qu avec un seul enregistrement Ce choix est indisponible dans le cas contraire Le choix d un de ces items ouvre la fen tre de choix des donn es pour le trac de la courbe L image 5 6 en est un exemple Session Open Windows Update E Calcul TST OPERATOR gt 2 CS louvet connect Edd
34. biblioth ques de passage de messages MPI voir ci apr s SCALAPACK est pr sent e en plusieurs sous ensembles dont BLACS la biblioth que des fonctions l men taires de passages de messages La biblioth que SCILIB SCILIB est une biblioth que FORTRAN 77 portable mulant la biblioth que CRAY SCILIB d velopp par Cray Resarch Inc Elle est d M J McBride et S H Lamson A 3 2 Les autres biblioth ques Outre la r solution de syst mes lin aires de nombreux autres domaines sont trait s dans les biblioth ques de calcul scientifique fft fonctions sp ciales fonctions al atoires A 4 Les classes objets pour la gestion des tableaux Id alement on voudrait des fonctionnalit s identiques que celles propos es par les langages Fortran 90 95 qui sont des langages de programmation tr s orient s calcul scientifique c est dire des tableaux plusieurs indices pour les types par d faut entier flottant logique et chaine de carat res mais aussi pour les types utilisateurs des op rations sur les tableaux somme produit produit scalaire extraction de sous tableaux fusion Pour rendre MOOCS ind pendant du choix de la notion de tableau nous devons d finir un en semble de fonctionnalit s minimal et les interfacer par l interm diaire des outils disponibles dans ce domaine et d crits ci dessous A 4 1 Le standard de C On trouve en C le type standard des tableaux sous la form
35. brique le paquetage Op rateur qui regroupe les classes Op rateur Continu Op rateur Discret et Matrice le paquetage Variable qui rassemble les classes Variable Continue Variable Discr te et Vecteur le paquetage Domaine qui agglom re les classes Domaine Continu et Domaine Discret Les interactions existantes au sein du paquetage Probl me illustr e par le diagramme 2 2 se retrouvent de fa on analogue dans les autres paquetages Le diagramme 2 4 montre l encha nement des v nements au sein du paquetage Op rateur Op rateur continu Op rateur discret Matrice Discr tisation N I Fin de l inversion Assemblage Fin du retour de la solution 4 FIG 2 4 Diagramme de s quence global repr sentant la r solution d un probl me math matique au niveau des op rateurs 2 4 Conception d taill e Il faut maintenant finaliser la conception d finir d finitivement les interactions entres classes pr ciser de fa on d taill e les services attendues pour chacune de ces classes tendre vers des paquetages de plus en plus ind pendants pour assurer la souplesse du logiciel A ce point du processus il faut tenir compte de cinq crit res fondamentaux voir essentiels pour s assurer des b n fices que peut apporter la programmation objet Le couplage l interd pendance des classes est un point extr mement important Il faut adopter un certain nive
36. calcul Le scientifique doit pouvoir r soudre son probl me en fonction de ces param tres Ainsi par exemple la mise au point d une m thode de r solution ne doit pas interf rer avec les techniques d alg bre lin aire Bien que les quations et les techniques de r solution soient diff rentes d un probl me l autre de nombreux points restent communs l ensemble des tudes les maillages l utilisation de tech niques de discr tisations l ments finis diff rences finis les algorithmes de r solution lin aires et non lin aires Il est donc tout fait souhaitable de capitaliser les d veloppements et de rendre compatibles les diff rents logiciels d velopp s au sein de l quipe Les avantages sont bien connus et multiples efficacit vitesse de d veloppement fiabilit r utilisabilit modularit La vocation premi re de ces codes de calcul est la recherche Cela ne doit pas tre en oppo sition avec certains crit res plus souvent appliqu s aux codes industriels documentation auto v rification des donn es efficacit mais qui sont essentiels pour satisfaire nos contraintes travail collaboratif capitalisation des d veloppements Nos codes de calcul doivent ainsi tre pu bliables en satisfaisant au mieux les crit res des codes industriels 1 1 2 L enseignement Le calcul scientifique est enseign dans tous les cycles du cursus universitaire avec des finalit s diff
37. cas d utilisation d finis en 3 3 1 et en 3 3 2 peuvent tre repr sent s graphique ment par un diagramme UML qui permet de visualiser les UC pr dominants en g n ral les UC les plus inclus 3 3 31 CHAPITRE 3 ENVIRONNEMENT 3 3 CONCEPTUALISATION onesiensia ap 8191607 1 Q Z lt epnjoui gt gt _ a lt epnjour gt gt x lt lt aphpaup gt re lt sepnjoul gt gt S lt lt p jau gt gt op P JOSIJENSIA uonn98xs 18101009 uogno x SJAINS Fic 3 3 Diagramme des cas d utilisation anasan L 32 CHAPITRE 3 ENVIRONNEMENT 3 3 CONCEPTUALISATION 3 3 4 Sp cification du besoin relatif l interface graphique La partie instrumentation du logiciel GTOOCS a pour vocation d interagir interactivement avec l utilisateur Cela suppose n cessairement la mise en place d une interface graphique qui permettra d acc der toutes les fonctionnalit s du logiciel Il est donc indispensable de sp cifier les besoins en mati res d interface graphique au m me titre que ce qui a t fait pr c demment pour les fonctionnalit s propres du syst me Les objets graphiques se distinguent des autres objets du logiciel par la pr sence du suffixe View dans le nom de leur classe Ces contextes d interactions sont pr sent s sous forme de classe dans un diagramme UML 3 4 boundary ControlView void void void lt Synchrone a
38. communiquants Les objets communiquants sont ceux qui sont accessibles sur le serveur partir d une applica tion cliente Cette d finition s applique certaines classes issues de la conception pr liminaire 50 CHAPITRE 3 ENVIRONNEMENT 3 7 CONCEPTION D TAILL E Singleton CorbaServer A _orb CORBA ORB_var _poa PortableServer POA var _naming CosNaming NamingContext_var _eventFactory OBEventChannelFactory EventChannelFactory l run void Mise en attente des requ tes FIG 3 24 Diagramme des classes Corba du serveur module DBUser classes UserManagement et User module Stream classes de la hi rarchie Ostream classes Record et Format module Execution classes Execution YPExecutions Access Authorization et classes de la hi rarchie ControlAction Les objets du module DBUser sont des objets distribu s accessibles par le biais du serveur de base de donn es La classe interfacant la base de donn es doit donc impl menter les m thodes et attributs n cessaires l accession cette base C est la classe User DataBase qui r alise cette interface Les autres objets communiquants ne se manipulent que par le biais de leur interface c est dire par l interm diaire des services qu ils proposent Ces fonctionnalit s sont d crites l aide d un langage propre CORBA VIDL Interface Definition Language La description des interfaces avec 1 IDL permet
39. de d finir un contrat entre les clients et les serveurs Il faut donc documenter de fa on pr cise les interfaces des objets communiquants comme il est illustr dans le diagramme 3 25 Fabriques associ es aux objets communiquants Les objets communiquants sont soit cr s par le serveur CORBA soit cr s par les applications clientes du serveur c est dire le sous syst me Code de Calcul ou le sous syst me IHM Dans ce dernier cas ils sont instanci s par le biais de fabriques d objets r f renc es sur le serveur La conception de ces classes est bas e sur le patron architectural factory Les r f rences des objets factory sont publiques et permettent aux sous syst mes clients de cr er sur le serveur autant d objets distribu s que n cessaires Ces objets ne peuvent tre cr s et d truits que par le biais des fabriques Les classes d objets n cessitant la mise en oeuvre d une factory sont les suivantes Classe Execution Classe Access Authorization Classe ControlAction Classe Ostream On obtient ainsi de nouvelles classes issues de la conception d taill e Leurs interfaces sont donn es par les contrats IDL illustr s par le diagramme 3 26 Servant des objets communiquants Tous les objets communiquant d finis par une interface IDL sont impl ment s sur le serveur par le biais de servants Ceux ci sont d riv s du squelette g n r par le compilateur IDL et impl mentent ainsi n cess
40. de l utilisateur connect et des calculs accessibles par l interface graphique 90 Fen tre donnant les informations d un calcul particulier accessible par l interface graphique i dive AA A RE a 91 Fen tre donnant les informations de flux issus d un calcul accessible par l interface graphique fins 44 408 48 a dut wees a algue giao gee a 92 Fen tre permettant la visualisation textuelle d un flux par l interface graphique 92 Fen tre permettant le choix des donn es pour la visualisation graphique d un flux via l interface graphique 93 Fen tre permettant la visualisation graphique courbe 2D d un flux via l interface BraDhIQuE ss s 6 8 ou lt a A a der i oe Sea ee a DE das Ah 94 Fen tre permettant la visualisation de la documentation d un code via l interface graphique ht ee A is ee di oH e ASE 94 Fen tre permettant le choix du fichier pour la g n ration de la documentation 100 Visualisation de la documentation g n r e pour le code source en fortran 90 1 re parties ur tr alee eee ie 2 ER aa de de a A NE as la BG 102 Visualisation de la documentation g n r e pour le code source en fortran 90 2 me PATHE Lau dre Gta Ba ad aoe te Ap be el ad Dante due rite at ard Behe A 103 Visualisation de la documentation g n r e pour le code source en C 1 re partie 105 Visualisation de la documentation g n r e pour le code s
41. de la documentation 6 4 1 Exemple en fortran 90 Programme document Le programme fortran 90 document selon la structure support e par makedoc est donn par le source suivant doc B EF F 00 Bibliotheque d Elements Finis Fortran 90 Orientee Objet copyright Equipe Analyse Numerique Universite de Paris Sud 91405 ORSAY CEDEX FRANCE Nauthor V LOUVET version 0 1 description GEOM_LIBR Module of the interface of geom modifications 02 2000 0 1 V Louvet Cr ation name module geom_libr include 100 CHAPITRE 6 DOCUMENTATION 6 4 EXEMPLES use contxt_desc General purpose Module use contxt_libr Input ouput toolkit Module use ftrace_libr Flow Trace Module use geom_desc Geom Module I skip interface I calling_sequence subroutine gm_rect_2d geom amp x1 x2 yl y2 amp nbx nby I skip use contxt_desc General purpose Module use contxt_libr Input ouput toolkit Module use storag_desc Storage toolkit Module use ftrace_libr Flow Trace Module use geom_desc Mesh Descriptor Module implicit none type geom_struc intent inout geom The mesh integer intent in nbx Number of segements beetwing S1 S2 integer intent in nby Number of segements beetwing S1 S3 real rp intent in x1 y1 Coordonnates of S1 real rp intent in x2 y2 Coordonnates of S2 end subroutine gm_rect_2d end interface end module geom_libr end
42. des domaines de calcul obtenus par une d formation admissible aux sens des diff rences finies maillages en C autour d un profil maillages en O et leurs combinai sons par exemple Les maillages r guliers sont int gr s au projet MOOCS On ne s int resse donc qu aux maillages non structur s Les maillages duaux sont g n ralement obtenus partir de maillages directs On distinguera le cas des mailleurs 2D par exemple les mailleurs de MODU LEF ou le projet GAMMA d velopp s par l INRIA et celui des mailleurs 3D par exemple gmsh http www geuz org gmsh Les liens des mailleurs ext rieurs au code avec le code de calcul sont faibles dans le sens qu ils ne sont pas directement int gr s au code mais les maillages sont transmis soit par l interm diaire de fichiers soit par la proc dure de couplage de code voir le paragraphe 3 On s int resse aussi aux outils d adaptations de maillages et de d compositions ceux ci pouvant tre directement appel s par le programme de calcul et donc plus ou moins int gr s au code A 6 Les biblioth ques d outils parall les On distingue deux types de biblioth ques parall les les biblioth ques de passage de messages et les biblioth ques de synchronisation A 6 1 Biblioth ques de synchronisation Ces biblioth ques sont apparues avec la gamme des machines vectorielles CRAY multipro cesseurs et ne sont g n ralis es que sur ce type de mat riel c est dire sur les m
43. et la fen tre de connexion lors du lancement du logiciel 89 5 3 EXPLOITATION GRAPHIQUE CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL Session Open Windows Update E G Toocs Connexion au serveu Login Mot de passe Validation FIG 5 1 Fen tre d accueil et de connexion de l interface graphique 5 3 4 Fen tre des donn es utilisateur Si Putilisateur est autoris se connecter au serveur deux nouvelles fen tres d ouvrent La pre mi re correspond aux donn es propres l utilisateur connect Elle lui offre en outre la possibilit de changer son mot de passe sur la base des utilisateurs 5 3 5 Fen tre des calculs La seconde fen tre qui s ouvre lorsque la connexion est r alis e est celle qui comporte dans un tableau la liste des ex cutions recens es sur le serveur L image 5 2 pr sente la fen tre utilisateur ainsi que la fen tre des calculs G TOOCS Exploitation de codes de calculs Session Open Windows Update Changer le mot de passe E 6 TOOCS Liste des ex cution ST OPERATOR Violaine Louvet Violaine Louvet FIG 5 2 Fen tre donnant les informations de l utilisateur connect et des calculs accessibles par interface graphique 90 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 3 EXPLOITATION GRAPHIQUE 5 3 6 Fen tre d une ex cution particuli re La s lection d une ligne du tableau des ex cutions engendre
44. finie up la solution approch e et fa l approxi mation des forces ext rieures Pp est une approximation de P laquelle nous allons donner un sens Consid rons les op rateurs de plongement Pz Win Wi resp Q Won Wa et de restriction Py Wir Win resp Qr W2 Won On obtient alors le diagramme suivant Win Ph Wan Ph Qi Wi 4 W2 Ph Qn Win Ph Wan On peut ainsi d finir l op rateur discret PA en fonction des op rateurs de restriction et de plongement et du probl me continu P Yh RP h gt 0 P Q o P o Pi Ces op rateurs de discr tisation sont construits de facon v rifier un certain nombre d hypo th ses permettant d assurer qu ils sont candidats pour tre de bonnes discr tisations Hypoth se 2 1 1 On suppose que les op rateurs Pr Qn Pr Q sont tels que i Pour tout h dans R P et Q sont des op rateurs lin aires continus ti Ona Vu Wis tin Enei u ullp 0 Vu Wa lim 110 0 Qn u ul yy 0 Vv W li P o F u 0 u Lr lim holy u AR 3 Vu E Wan Ia o Qr u ull yy 0 12 CHAPITRE 2 ANALYSE MATH MATIQUE 2 2 ANALYSE Dans le cas fr quent o W1 est inclus dans W et Wa est inclus dans W2 les deux derni res lignes du point ii de Vhypoth se 2 1 1 sont automatiquement v rifi es On d montre alors que les discr tisations ainsi construites sont automatiquement consistantes la stabilit quant elle d pend f
45. la m thode d int gration num rique et pour chaque famille d int gration on lui rattache la d finition des l ments finis assurant ainsi leur compatibilit La d finition d une m thode d l ments finis comprend deux sous ensembles un pour pr ciser les degr s de libert et l autre pour les fonctions de bases et leurs d riv es Tout est donn sur un l ment de r f rence Les fonctions de bases sont connues par l interm diaire de leurs valeurs aux points d int gration ainsi que la valeur de leurs d riv es On a ainsi toute l information n cessaire la construction de la liste des degr s de libert Par exemple si on demande les l ments P2 les donn es suivantes sont requises 1 il y a des degr s de libert sur les cot s si on ne dispose pas d une num rotation de ceux ci on demande l objet DiscreteDomain de la construire 71 4 3 MISE EN UVRE CHAPITRE 4 APPLICATION 2 On connait donc le nombre des degr s de libert et leurs num ros par l ments 3 On peut galement avoir besoin de la liste des noeuds voisins d finissant le graphe de la matrice Ainsi connaissant les valeurs des fonctions de base aux points d int gration on est capable de calculer l ensemble des op rateurs aux d riv es partielles Chaque instance de la classe Method conna t l objet de maillage sur lequel est r solu le probl me Outre la num rotation des degr s de libert on construit l ap
46. le client invoque une op ration sur le proxy celui ci envoie un message au servant distant La classe Proxy est g n r e partir de l interface IDL et impl mente le stub travers lequel le client envoie ses appels Servant entit de programmation impl mentant un ou plusieurs objets CORBA Ils incarnent les objets CORBA Object Request Broker ORB noyau de communication Il assure le transport des invo cations entre les objets Plusieurs protocoles sont standardis s GIOP IIOP L ORB fournit les m canismes par lesquels les objets font des requ tes et re oivent des r ponses et ce de mani re transparente Il fournit galement l interop rabilit entre des applications sur diff rentes machines dans des environnements distribu s h t rog nes et il interconnecte sans coutures de multiples syst mes objets D une fa on simplifi e on peut d finir PORB comme une entit qui fournit des m canismes d interrogations permettant de r cup rer des objets des proc dures qui constituent une application L ORB est responsable de tous les m canismes n cessaires pour Trouver l impl mentation de l objet pour la requ te Pr parer cette impl mentation recevoir la requ te Communiquer les donn es constituant la requ te Static Invocation Interface SIT et Static Skeleton Interface SSI Elles correspondent l invocation et au retour statique des requ tes Dans ce cas les interfaces
47. les unit s du logiciels 2 4 1 Conception d taill e du paquetage Probl me Le paquetage Probl me contient les classes Probl me Continu Probl me Discret et Probl me Alg brique La classe Probl me Continu mod lise le probl me math matique 2 1 La classe Probl me Discret repr sente le probl me math matique 2 2 approximation de 2 1 bas e sur le choix d une discr tisation La lin arisation de 2 2 conduit un syst me lin aire mod lis par la classe Probl me Alg brique L tude math matique des quations nous permet d affiner la description des classes du mod le Pour d finir un probl me continu il faut conna tre une liste d op rateurs continus une liste de variables continues contenant les donn es du probl me par exemple le second membre f une liste de variables continues contenant les inconnues du probl mes une liste de domaines continus contenant les diff rents domaines n cessaires la d finition des espaces de travail domaines volumiques ou surfaciques Les services propos s par la classe Probl me Continu sont de deux types des services de construction du probl me continu Le d veloppeur peut ainsi composer son probl me en fonction des quations math matiques qu il a traiter Ces services lui per mettent d ajouter de nouveaux op rateurs ou de nouvelles donn es pour d finir compl te ment le probl me qui l int resse des services de contr
48. logiciel Outre les fonctionnalit s de suivis de calculs l utilisateur doit pouvoir contr ler l ex cution de son code toujours depuis son poste de travail par des actions de suspension de reprise et d arr t du calcul Enfin l impl mentation de codes de recherche rend particuli rement importante la connaissance de la documentation des programmes Il faut donc mettre en place une structure des sources commune permettant l extraction automatique de la documentation associ e Toutes les donn es et les actions auxquelles peut acc der l utilisateur doivent naturellement tre prot g es Un utilisateur ne doit pas pourvoir acc der aux informations d une ex cution qui ne lui appartient pas Il est donc n cessaire de recenser les utilisateurs qui se connecteront au syst me via un login et un mot de passe et d associer chaque ex cution un utilisateur pr cis 3 2 Etude pr liminaire 3 2 1 Environnement de travail On consid re le syst me d velopper comme une bo te noire int gr e l environnement de travail global Le but de cet tape est de situer ce nouveau logiciel par rapport aux autres logiciels existants ainsi que les liens pouvant exister entre eux Cette tape permet de situer le contexte de d veloppement au sein de notre laboratoire du syst me r aliser Elle permet aussi de d appr hender les acteurs de types syst me qui sont en relation avec lui d taill en 3 2 2 Le diagramme
49. o Y uipr Ua Ui Par identification on trouve 1 42 1 h 2 h h 2 h 2 1 ATt 1 h 1 h 0 et A h 2 h 2 1 0 0 1 0 0 1 Alors pour tout x dans le domaine de contr le w on obtient Pa u x A Y Ps 2 Maintenant si l on a des valeurs u en chaque point de la grille on peut d finir un a A7Y P x pour x wi En un point interne on retrouve la forme habituelle du laplacien 1 Au 12 ui 1 24 uit On obtient de fa on analogue les formules d ordre 2 sur les points du bord Par exemple pour i 0 la matrice A est bien entendu diff rente A Y Po x2 AlY Po ai1 ulmi u 8 N I g N AY Po zo ulto uo o Yo ua ul uo On trouve 1 2h 1 h 1 2h 4h 2h 1 ATA 1 2h 2 h 3 2h et A hh 1 0 0 1 0 0 1 Au point d abscisse 0 le laplacien s crit 1 uo U2 Aw 73 F ug 2 ui 2 Au point d abscisse 1 on a 1 Un 2 _ UN Aun 55 2 UN 1 T x Pour obtenir les formules l ordre 4 on proc de de la m me mani re Il faut cette fois consid rer dans l expression de P x 5 termes jusqu l ordre 4 et deux cas particuliers chaque extr mit Auo 75 15 4uo 77 6u1 107 6u2 13u3 61 12u4 5 Gus Au 72 5 6up 5 4u1 1 3u2 7 6u3 1 2u4 1 12u5 AU Fz 1 12u 2 4 3uj_ 1 5 2u 4 3uj41 1 12ui41 pourl lt i lt N 1 Aun 1 77 1 12un 5 1 2un_4
50. objet qui a pour objectif de r duire les phases de d veloppement et de maintenance des logiciels et permet de d finir les concepts suivants Interop rabilit il faut assurer l ind pendance des m canismes et des formats de donn es vis vis des plates formes des syst mes d exploitation des couches r seau du langage de programmation CORBA assure l interconnexion entre les objets distribu s Architecture client serveur un objet objet serveur offre des services des applications clientes distantes ou d autres objets objets clients L objet serveur poss de l int gralit des caract ristiques de l objet le client acc dant ces services gr ce aux m thodes de l objet serveur Bus logiciel analogie avec les bus hardware o diff rents modules lectroniques carte m re m moire p riph riques interagissent via un bus et des interfaces modularit extensibi lit 117 C 1 CONCEPTS ET NOTIONSEXE C CORBA MECANISMES DE FONCTIONNEMENT L OMA vise clarifier les diff rents objets qui interviennent dans une application en fonction de leur r le selon la figure C 1 INTERFACES DE DOMAINE poro 1 1 4 BUS D OBJETS REPARTIS Lee ti OBJETS APPLICATIFS SERVICES OBJETS COMMUNS Fic C 1 Constitution de POMA Le bus d objets r partis il permet la communication entre clients et objets et assure ainsi le transport des requ tes entre to
51. par exemple l une correspondant aux l ments finis et l autre aux diff rences finies elles ont effectivement le m me comportement selon le cadre th orique fix Seules leurs donn es internes varient La coh sion des classes est donc bien respect e L autarcie l autosuffisance d une classe d signe sa facult d offrir elle seule un vrai service sans n cessiter la collaboration d autres classes Compte tenu de la proximit des classes avec les l ments math matiques qu elles mod lisent elles en refl tent fid lement le comportement en respectant ansi cette notion La compl tude une classe compl te doit fournir tous les services li s au domaine qu elle est cens e mod liser Il faut donc s assurer que les services propos s par chacune des classes du mod le correspondent toutes les manipulations math matiques r alisables sur les l ments qu elles repr sentent dans le cadre du probl me trait La primitivit la notion de primitivit est proche de la notion de couche La mod lisation propos e r pond donc particuli rement bien ce crit re les primitives du niveau n s appuient sur les primitives du niveau n 1 et offre un certain nombre de services qui sont utilis s par les primitives du niveau n 1 Compte tenu de ces crit res et en s appuyant sur le mod le d analyse et le d coupage m tier de la conception pr liminaire on peut maintenant affiner d tailler et compl ter
52. suivant 3 1 illustre l environnement de travail GTOOCS Logiciel de visualisation FIG 3 1 Environnement de travail global Le logiciel GTOOCS doit avoir la possibilit d interagir avec des logiciels de visualisation qui pourront tre propos s pour exploiter les r sultats issus de l instrumentation des codes 3 2 2 Acteurs Les acteurs regroupent toutes les entit s externes au syst me d velopper qui sont en relation avec celui ci Ces acteurs peuvent tre des logiciels informatiques syst mes externes SE comme 28 CHAPITRE 3 ENVIRONNEMENT 3 3 CONCEPTUALISATION des personnes physiques R le Utilisateur RU Ils peuvent utiliser le logiciel d velopper on parle alors d acteurs primaires ou tre utilis s par le logiciel ils sont dits alors acteurs secondaires Nom SE RU P S D finition Utilisateur RU P Cet acteur mod lise une personne ayant l autorisation d acc der aux ex cutions des codes instrument s pour des actions de contr le et d exploitation des donn es g n r s par ces codes de calcul scientifique instrument s Logiciel de SE S Cet acteur mod lise un outil ext rieur au syst me visualisation d velopper pour la visualisation graphique de donn es 3 2 3 Interactions Chacun des acteurs d finies en 3 2 2 interagit avec le logiciel en lui demandant un ou des services dans ce cas l acteur est dit primai
53. te sont des services de lin arisation de la variable discr te conduisant la cr ation de l objet Vecteur associ Comme pour les op rateurs ces classes sont abstraites Leurs r alisations concr tes se feront par des sp cialisations d pendantes du probl me math matique traiter La mod lisation UML de la conception d taill e du paquetage Variable est expos e dans le diagramme de classe 2 7 La normalisation des noms fait concorder Variable Continue avec Variable et Variable Discr te avec Variable _h domaines liste lt Domaine gt variable_h Variable h init variable discrete Variable _h domaines liste lt Domaine_h gt discretisation Discretisation vecteur Vecteur init_vecteur Vecteur Fic 2 7 Diagramme de classes du paquetage Variable 2 4 4 Conception d taill e du paquetage Domaine Le paquetage Domaine contient les classes Domaine Continu et Domaine Discret Au niveau continu la classe Domaine Continu permet la description d un domaine de Rd Les services rendus par cette classe se limitent 4 la cr ation de la primitive inf rieure c est dire du domaine discret associ L association entre ces classes est quivalente ce qui a t d ja d crit Le domaine discret est la primitive la plus basse du paquetage Il n est donc pas responsable de la cr ation d une instance du niveau alg brique Il peut repr senter aussi bien un maillage de type l m
54. travaillons dans un environnement tr s h t rog ne Ceci implique le d veloppement de code portable c est dire qu il est n cessaire de respecter les normes des langages en ignorant les extensions des constructeurs quelquefois malheureusement bien utiles de transporter l ensemble de notre environnement de travail c est dire d inclure dans notre environnement des outils comme le profiling et autres outils de mesure et d observation du 7 1 2 OBJETIFS CHAPITRE 1 PHILOSOPHIE ET MOTIVATIONS comportement des codes afin d avoir une homog n it des r sultats d analyse de pr voir des outils de d veloppements g n ration de d pendance pour la compilation interfaces inter langages de pr voir des outils de couplage de codes afin d avoir un usage optimal du mat riel infor matique 1 1 4 En conclusion En conclusion pour r pondre au mieux l ensemble des id es qui ont t donn es pr c dem ment il nous faut mettre en ceuvre une technique de programmation et un ensemble d outils et de biblioth ques r pondant aux caract ristiques suivantes une facilit de reprises des codes d velopp s l automatisation de la documentation Pusage des langages les plus adapt s une rationalisation des moyens informatiques Interface Graphique s par e du code prenant en compte l h t rog n it du parc informatique la prise en compte des notio
55. veloppements Ce que nous recherchons dans les codes existants c est justement cette analyse objet Comprendre comment on est amen choisir la d finition d une classe est tr s important Si la m thodologie proc durale conduisait finalement une structure de code peu pr s identique il n en est rien des biblioth ques objets 107 A 3 LOGICIELS ET BIBLIOTH QUES NON OBJETS ANNEXE A ETAT DE L ART On peut distinguer deux types d objets les objets d finissant la structure globale de code et les objets utilitaires Les premiers permettent d exprimer le probl me r soudre et les algorithmes de r solutions Il d pend fortement de la philosophie objet utilis e Il n est donc pas vident que deux philosophies diff rentes aboutissent sur des objets compatibles Par contre les objets utilitaires comme la gestion des tableaux des matrices le traitement de erreurs etc interviennent finalement dans des couches plus profondes de l criture et peuvent aisement tre compatibles entre des philosophies diff rentes A 2 1 elsA http elsA onera fr Le projet elSa Ensemble Logiciel pour la Simulation en A rodynamique est d velopp VONERA C est un logiciel effectivement con u de fa on objet tr s proche du notre dans sa philosophie A 2 2 FreeFEM http www freefem org FreeFEM comme son nom l indique est un logiciel de r solution de probl mes aux d riv es partielles discr tis es
56. vues peuvent tre construites partir des mod les de base elles peuvent montrer tout ou partie des mod les chaque vue correspondent un ou plusieurs diagrammes UML d finit neuf types de diagrammes diff rents les diagrammes de classes les diagrammes de s quence les diagrammes de collaboration les diagramme d objets les diagrammes d tats transitions les diagrammes d activit s les diagrammes de cas d utilisation les diagrammes de composants les diagrammes de d ploiement Nous allons nous limiter ici d crire les diagrammes de classes qui ont t utilis s pour la mod lisation des d veloppements du projet et la r daction de ce document B 1 Paquetages Les paquetages offrent un m canisme g n ral pour la partition des mod les et le regroupement des l ments de mod lisation Chaque paquetage est repr sent graphiquement par un dossier comme illustr par la figure B 1 Classe 1 Fic B 1 Mod lisation UML d un paquetage Les paquetages divisent et organisent les mod les de la m me mani re que les r pertoires organisent les syst mes de fichiers Chaque paquetage correspond un sous ensemble du mod le et contient selon le mod le des classes des objets des relations des composants ou des noeuds ainsi que les diagrammes associ s B 2 Classes et Visibilit Une classe est le descripteur d un ensemble d objets qui ont une st
57. x 0 1 et on prendra T 00 On cherche les valeurs de la solution u en tous les points d une grille de pas h donn e Cette question se prolonge au niveau discret par 2 On cherche comparer l efficacit relative des m thodes d l ments finis et de diff rences finis Enfin au niveau des algorithmes de r solutions de syst mes lin aires 3 On voudrait tester diff rentes m thodes de stokage de la matrice ainsi que les principales m thodes de descente 4 3 2 Le paquetage Problem Le paquetage Problem regroupe les classes Problem Discret_Problem et Algebric_ Problem Ces classes sont li es par des associations qui sont des agr gations fortes c est dire que Problem poss de Discret_Problem qui poss de Algebric_Problem La classe Problem La classe Problem voir 4 1 contient donc toutes les informations n cessaires la d finition du probl me et sa r solution les donn es physiques du probl me y et a la d finition du domaine de calcul travers le paquetage Domain la liste des points d observation de la solution c est ce qui permettra la remont e de cette solution depuis les tages discrets la liste des op rateurs intervenant dans le probl me le laplacien et l identit sous la forme d un op rateur de rigidit paquetage Operator 67 4 3 MISE EN UVRE CHAPITRE 4 APPLICATION la liste des variables la solution u et le second membre f paquetage Va
58. 3 6 et les classes de vue dans la sous section 3 6 4 Par souci de clart du document nous ne les expliciterons pas ici 3 8 Impl mentation et tests 3 8 1 Choix techniques pour l impl mentation Les choix techniques effectuer concernent les compilateurs le serveur de base de donn es les APT de connexions ce serveur les librairies graphiques l impl mentation de PORB Les contraintes relatives ces choix techniques imposent d utiliser des outils r pondant aux exeigences suivantes multi OS libres et gratuits stables et p rennes Compilateurs Le choix des compilateurs reste ouvert car l impl mentation doit imp rativement suivre la norme des langages utilis s Dans un premier temps les programmes sont compil s gr ce aux compilateurs GNU et intel pour le C et le SDK de SUN pour Java Concernant la partie fortran le compilateur choisi est le compilateur intel Serveur de base de donn es Un des serveurs de base de donn es r pondant aux contraintes voqu es est le serveur Mysql API de connexion la base de donn es Le SDK de SUN int gre une API de connexion un serveur SQL pour le langage Java Concer nant le C il existe une APT nomm Mysql permettant de communiquer avec le serveur de base de donn es MySQL Librairies graphiques Les APT du SDK de SUN ne comprennent pas de classes de tra age de courbes volu s ce qui est indispensable au bon fonctionnement de
59. 6 1 Biblioth ques de synchronisation A 6 2 Les biblioth ques de passages de messages B Notations UML B 1 B 2 B 3 B 4 B 5 Paquetages w u nt ai a al ah a A ee ee E te at Classes et Visibilit z eeri k mar tt MOR UE See eee Goa o A lime tes m ek ae Associations et cardinalit G n ralisation et h ritage Conclusions m de carder sad a cca E Ab ap a an ee de de a 97 97 98 98 98 99 99 99 99 100 101 107 107 107 107 107 108 108 108 108 108 109 110 110 110 110 111 111 111 111 111 112 C CORBA m canismes de fonctionnement 117 C 1 C 2 C 3 Concepts eb notions 4 444 4e due dus ae dde due page ee pa 117 Fonctionnement du bus d objets r partis et du processus d invocation des requ tes 121 Utilisation des services CORBA 122 C 3 1 Le service de Nommage Naming Service 122 C 3 2 Le service des Ev nements Event Service 123 vi Table des figures 2 2 2 1 2 4 2 3 2 5 2 6 2 7 2 8 2 9 2 10 2 11 3 1 3 2 3 3 3 4 3 6 3 9 3 7 3 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 3 21 3 22 3 23 3 24 3 25 3 26 3 27 Diagramme de s quence global repr sentant la r solution d un probl me math ma DIQUES s amp da e a A E a de e id RENE Diagramme de collaboration global de la r solu
60. IDL sont tra duites en stubs et skeletons de mani re langage d pendante et ceux ci sont compil s dans les applications clientes et serveurs Le stub est le c t client qui permet l invocation d une requ te comme un appel local Le skeleton est le c t serveur qui permet une invocation re ue par le serveur de l envoyer au servant appropri Dynamic Invocation Interface DIT et Dynamic Skeleton Interface DSI La construc tion et l envoi des requ tes se fait l ex cution plut t qu la compilation Cette m thode 119 C 1 CONCEPTS ET NOTIONSEXE C CORBA MECANISMES DE FONCTIONNEMENT n cessite l acc s des services qui peuvent donner des informations sur les interfaces et les types L application peut obtenir ces informations par l interm diaire de l Interface Reposi tory un service permettant l acc s aux d finitions IDL au moment de l ex cution Pour invoquer une op ration sur un objet un client doit faire appel et tre li statiquement au stub correspondant Puisque le d veloppeur d termine l criture du code les stubs qu un client contient l invocation statique ne peut acc der de nouveaux objets qui ont t ajout s au syst me plus tard La DII fournit cette capacit Cette interface permet un client l ex cution de D couvrir de nouveaux objets D couvrir leurs interfaces Retrouver les d finitions d interfaces Construire et di
61. Il s agit donc de disposer d une biblioth que fiable permettant le d velopement de nouvelles applications rapidement Les d veloppements doivent tre homog nes collaboratifs et normalis s afin de permettre plusieurs personnes de travailler sur les m mes projets Enfin nous avons d j signal que la ma trise de la conception orient e objet tait indispensable aussi bien pour les futurs enseignants que pour les futures ing nieurs Le sous paragraphe 1 1 4 r sume d j un certain nombre de nos objectifs et de nos contraintes En compl ment de ces points d j voqu s on peut ajouter les exigences suivantes L utilisateur final doit pouvoir travailler sans recompiler Il doit donc avoir acc s facilement l ensemble des param tres physiques de son probl me et disposer des l ments n cessaires l appr ciation du comportement du code de calcul L une des directions de recherche importante dans notre quipe est la mise au point de m thodes de r solution nouvelles Il est donc important de pouvoir agir sur ces m thodes ind pendamment du reste du code Ces m thodes peuvent tre coupl es ou non avec les techniques de discr tisations Nous souhaitons une certaine ind pendances des codes de calcul vis vis des m thodes de discr tisation Dans un cas id al nous voudrions pouvoir remplacer diff rences finis par CHAPITRE 1 PHILOSOPHIE ET MOTIVATIONS 1 3 ETAT DE L ART l ments finis par ex
62. Label _ password Button InternalFrame PasswdView _model EndUser _passwdl PasswordField PasswordField _passwd2 V rification Login o Ho Mot de passe Nom _name Groupe group Login _login Changer le mot de passe EA Nouveau mot de passe Fic 3 19 Diagramme U M L des classes graphiques li es l objet utilisateur AbstractTableModel YPCalculsTableModel model YPCalculs Internalview YPCalculsView YPCalculs _table list _model Table list lt CalculView gt CalculView 47 Fic 3 20 Diagramme U M L des classes graphiques li es aux pages jaunes des ex cutions 3 7 CONCEPTION D TAILL E CHAPITRE 3 ENVIRONNEMENT Panel InfoCalculView _model Calcul _hostname Label _cputime Label _state Label update void Nom du calcul Hostname temps CPU Etat InternalView CalculView _model Calcul _infoPane InfoCalculView _vostreamPane VOstreamCalculView _stop Button _pause Button restart Button _doc Button _del Button lt Documentation Panel VOstreamsCalculView _model Calcul _name Label _ok Button update void VOstreamView Fic 3 21 Diagramme U M L des classes graphiques li es une ex cution Enfin le diagramme 3 22 correspond aux vues des donn es elle
63. Le main contr lant le d marrage de l interface graphique se trouve dans le fichier ViewMa nagement java Le fichier de configuration contenant les r f rences initiales des objets Corba est ORB config L ex cution est lanc par la ligne de commande avec une variable CLASSPATH initialis e java ViewManagement ORBconfig ORB config 5 3 2 Fen tre principale d accueil Lors du lancement de l ex cutable de l interface graphique s ouvre la fen tre principale d ac cueil Elle comprend une barre de menu constitu de trois menus Session constitu des items Exit sortie du logiciel et Connexion au serveur permet la connexion au serveur Windows qui sera constitu s des items portant les noms de toutes les fen tres ouvertes et ventuellement iconifi es Update constitu de litem Update All Now mise jour imm diate des fen tres ouvertes par rapport aux donn es du serveur et de litem Update Frequency permet de d finir la fr quence de mise jour des fen tres par rapport aux donn es du serveur Par d faut la fr quence de mise jour est de 10 secondes 5 3 3 Fen tre de connexion Lors de l ex cution de l interface graphique la fen tre de connexion s ouvre imm diatement la suite de la fen tre d accueil Elle permet l utilisateur de s identifier sur le serveur et ainsi de n acc der qu aux ex cutions qui lui sont autoris es L image 5 1 illustre la fen tre d accueil
64. M thodologie et environnement de d veloppement orient s objets de l analyse math matique la programmation S Labb J Laminie V Louvet Laboratoire de Math matique Analyse Num rique et EDP Universit Paris Sud Orsay 6 janvier 2009 Version 1 1 ii Table des mati res Avertissement Introduction I De l analyse math matique la conception 1 Philosophie et motivations Co O DNA EE RCE NS O EL CLI L rrecherch 5 ie 8 8 monte a Ta at EE eee ee a 11 2 L enseignement se 4 4 4 84 ee eee a a RE ea da 1 1 3 L environnement informatique 11 4 En conel si n s s a a e a a i ea aaa RA a bo 1 27 ODIOS 2 e Due me ee ee A A o ee da h LS Etat de l art sae ne i aa aS a ere en ant ae Me he ch nag ged 1 4 M thodologie ce 5 e Eu dana ee enema a de me DURE eee cha Analyse math matique 2 1 Cadre th crique 4 e bbb 4 Aie aa nn Re REE eee See dE 44 US NE II AA 2 3 Conception pr liminaire 00 0 eee ee 2 4 Conception d taill e 2 44 4 4 4 40e age eG de da a 2 4 1 Conception d taill e du paquetage Probl me 2 4 2 Conception d taill e du paquetage Op rateur 2 4 3 Conception d taill e du paquetage Variable 2 4 4 Conception d taill e du paquetage Domaine 2 4 5 Conception d taill e de la hi rarchie Discr tisation 2 4 6 Conception d taill e de la hi rarch
65. Pallud 3 ainsi qu Alain Lichnewsky pour ses conseils Le but de ce travail est la r alisation d un cadre de programmation objet pour le calcul scienti fique principalement appliqu la r solution d quations ou de syst mes d quations aux d riv es partielles Les motivations qui nous ont conduits concevoir ce projet sont nombreuses Tout d abord la complexit des infrastructures informatiques et celle des besoins des utilisateurs et des concepteurs de logiciels fait qu il est imp ratif que la technologie de conception permettent la prise en compte efficace des notions comme le d veloppement coop ratif ou l h t rog n it des mat riels De plus en tant que laboratoire universitaire nous devons prendre en consid ration les besoins d outils p dagogiques pour la formation des tudiants ou encore ceux de p r nisation des codes de recherches La r alisation de codes de calcul scientifique dans le cadre d un travail de recherche en analyse num rique a pour but l tude et l optimisation des m thodes utilis es Cette approche diff re de la situation classique pour laquelle la finalit est l obtention d un r sultat La recherche dans le domaine du calcul scientifique se situe de nombreux niveaux Outre la r solution du probl me les num riciens travaillent sur la math matique des quations la m thodologie de r solution les discr tisations mais aussi les sciences de plus bas niveau comme l alg
66. QUE CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL G TOOCS Exploitation de codes de calculs Session Open Windows Update E Calcul TST OPERATOR Hostname clouange Temps CPU 10 0 Etat du calcul Running Contr le du calcul ane Stop Pause Format OS 1 intl double ri taire Propi Violaine Louvet Here Ostream Error NDesc Solution Documentation des sources Documentation Suppression d finitive 20 25 30 35 40 45 50 55 60 65 70 75 80 Supprimer du serveur E W Donn es Fic 5 7 Fen tre permettant la visualisation graphique courbe 2D d un flux via l interface graphique 5 3 8 Fen tre de documentation Il est possible depuis l interface graphique d exploitation d acc der la documentation des sources des codes instrument s L action sur le bouton Documentation de la fen tre d une ex cution ouvre une fen tre de choix de fichiers o sont filtr s les fichiers sources c est dire d extension h cpp 90 java idl Si les sources des codes instrument s ont t correctement structur s au niveau de leur docu mentation le choix d un de ces fichiers permet la g n ration automatique de cette documentation et sa visualisation dans l interface graphique L image 5 8 illustre cette possibilit QE Session Open Windows Update E Calcul T
67. ST OPERATOR y CS louvet connect Louvet Violaine pa 3 Documentation FULLMatr emps i Etat du calcul Internal Documentation for home louvet GTOOCS Instrum CODE lan c lib Operator FULLMatr h Contrd LAN C LIB Copyright Version and Updates E Equipe Analyse Numerique a Universite de Paris Sud 91405 ORSAY CEDEX FRANCE Author Documental y Louvet Suppres Version Suppri 1 0 r FIG 5 8 Fen tre permettant la visualisation de la documentation d un code via l interface gra phique 94 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 3 EXPLOITATION GRAPHIQUE Il faut noter qu il existe un outil ind pendant de l interface d exploitation pour la g n ration et la visualisation de la documentation des sources d un code Cet outil est d crit dans la partie Documentation de ce rapport 95 5 3 EXPLOITATION GRAPHIQUE CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 96 Chapitre 6 Protocole de documentation Introduction L objectif du projet GT OOCS est de mettre disposition des d veloppeurs de codes de calcul scientifique un environnement de programmation complet aide la conception oreint e objet aide au d veloppement possibilit d exploitation de contr le et de couplage du code Cet environnement est compl t par la mise disposition d une structure de documentation pour les sources des programmes informatiques C
68. UserDataBase bool EndUser boundary boundary StatsDatasView GraphDataView pata Execution ry oa I control ExecutionList Vv y ExecutionManagement control DataList DataManagement R CE tgetData Data T 1 AccessAuthorization A 1 x 1 1 1 CheckPermission oa VisualizationMethod 1 visualize 1 1 A A Gh GM AAA RS 1 1 1 L 1 1 1 Execution i 1 control TextVisualization boundary Statistics i S he VisualTool ye a o ects esse ee eee 1 1 1 1 1 1 1 1 1 Pause Stop Restart Code control CodeManagement InstrumentedCode T 1 x 1 1 1 LA RE 1 1 1 1 y Doc Sources x T A Ree eee 1 Fic 3 11 Diagramme de classes du mod le d analyse 39 3 5 ARCHITECTURE CHAPITRE 3 ENVIRONNEMENT 3 5 Architecture 3 5 1 Architecture logicielle Cette tape permet de prendre en compte l architecture et les contraintes techniques On peut consid rer que le projet comporte trois grandes parties la pr sentation c est dire THM les traitements c est dire le calcul lui m me les donn es c est dire tout ce qui doit tre conserv pour le suivi et le contr le du calcul l exploitation des r sultats Chacune d elles n cessite des besoins techniques particuliers qu il est important de prendre en compte l THM doit tre multiplateforme le calcul demande des performances machines importantes les donn es doiv
69. ab lt int 2 gt Ref_Elmt Num_Intg FEM_Base D finition des domaines de contr le de r f rence numb int coor int int double coef int int double Num_Intg Ref_Elmt type string D finition de la formule d int gration num rique Les points d int gration sont d finis sur un type de domaine de contr le de r f rence particulier nb_base int base int int double double nb_dl_som nb dl art s nb_dl_fac nb_dl_elm int int int int dlib int int int iden int int lapl int int int AE double double double Valeurs de fonctions de base et de leurs d riv es aux points d int gration FIG 4 5 Hi rarchie de la classe Method relative aux l ments finis 73 4 3 MISE EN UVRE CHAPITRE 4 APPLICATION Comment ajouter un type d l ments finis Les l ments finis actuellement disponibles sont sur un triangle PO l ment de degr 0 par l ment P1 l ment de degr 1 par l ment P1NC l ment non conforme de degr 1 par l ment P1BUL l ment de degr 1 par l ment avec bulle P2 l ment de degr 2 par l ment sur un carr Q1 de degr 1 dans chaque direction par l ment L ajout d un nouveau type d l ment fini se fait par sp cialisation de la classe g n rique Method sur le mod le de ce qui existe pour les l ments finis Pk 4 3 8 Diff rences finis On propose des
70. abilit s de chaque objet pour faciliter la mise en oeuvre d une architecture distribu e On distingue donc HO les objets fronti res not s Objet Froni re qui sont de mani re g n rale des objets d interface Interface graphique Interface vers un autre logiciel ou un syst me externe les objets contr les not s cbitcnr e qui jouent un r le de collaboration avec les autres objets Ils portent en g n ral la responsabilit de la r alisation des UC O les objets entit s not s ObieeEni sont les objets m tiers auxquels sont associ es des donn es L objectif de l analyse applicative est donc de d finir les responsabilit s de chaque classe et d iden tifier les objets de contr le pour chacun des cas d utilisation d finis en 3 3 1 et 3 3 2 R alisation de l UC 4 Identifier l utilisateur Le diagramme 3 6 repr sente le d roulement dynamique de ce cas d utilisation pe 1 Fournit login motdepasse ee eee IdentificationView Utilisateur 2 Identifier login moj depasse 3 new AccessData Identificateur 5 new 4 IdentifieMAcessData saisie EndUser Base de donn es Utilisateurs Fic 3 6 Diagramme de s quence du cas d utilisation 4 R alisation de PUC 5 Acc der une ex cution On suppose que la pr condition de PUC est r alis e et donc que l utilisateur a t identifi par le logiciel Le diagramme 3 7 illustre ce cas d utilisation 39
71. achines multi processeurs m moires partag es Elles proposent des outils de multi t ches gros grains pour une programmation SPMD typiquement un sous programme rassembl s en trois groupes Gestions des t ches Ils agit de permettre une t che d en lancer une autre call tsk_start et d attendre la fin de son ex cution call tsk_wait Ceci permet une programma tion du type fork and join Les arguments de ces sous programmes servent d finir la nouvelle t che ex cuter et identifier les couples tsk_start tsk_wait Gestions des sections critiques Une section critique est li e la notion de variables globales connues de toutes les t ches et de variables locales La section critique d finit une portion de code o un acc s concurrentiel est fait une variable globale La gestion des sections critiques permet de donner une coh rence d terministe au code 111 A 6 LES BIBLIOTH QUES D OUTILS PARALL LES ANNEXE A ETAT DE L ART Ces sections sont prot g es par des verrous lock On peut positionner un verrou call lock_on Dans ce cas la premi re t che atteignant ce verrou passe les autres at tendent que cette premi re t che soit sortie de la section critique call lock_off On a ainsi une ex cution s quentielle des sections critiques Gestions d v nements Un v nement permet d envoyer un signal 4 un ensemble de t ches On poste un v nement
72. agit maintenant d laborer un diagramme de classes 3 11 reprenant les entit s d finies pr c demment agenc es selon un d coupage m tier Ce d coupage est r alis en agglom rant les classes relatives aux m mes substantifs Les st r otypes de classes puis les cat gories paquetages permettent alors d organiser le logi ciel View user ld stitication Vi boundary rc gt AccessData entificallonVlew ExecutionsView i list ExecutionList E control UserManagement boundary ControlView etuser boundary kK er 0 EndU ExecutionView z ndUser execution Execution E login string gr ring Vv CheckUser 1 boundary 1 DatasView check bool 1 getUser EndUser 1 boundary 5 Ai fboundar s L TextDatasView HtmiDatasView Vv 1 boundary
73. aine publique ou ceux pouvant faire l objet d un contrat de partenariat au titre de la recherche ceci sans mettre en doute l exellence de tr s nombreux travaux du domaine commercial Une exception sera faite pour les utilitaires graphiques AVS EXPRESS est un logiciel ouvert que notre quipe poss de depuis lontemps et pour lequel l criture d interfaces sera envisag e Par ailleurs parmi les travaux du domaine publique nous ne retiendrons que ceux dont le code source est disponible ce qui est en g n ral le cas ceci nous assurant une plus grande portabilit re compilation adaptations mineures Les sous paragraphes suivants tudient au cas par cas certaines cat gories de logiciels et bi blioth ques On distinguera ceux qui ont une structuration objet et les autres Il est clair que tout ne peu tre pass en revu D autre part nous sommes plus concern s par la structure des logiciels et des biblioth ques que par leurs contenus De nombreux logiciels et biblioth ques proviennent de la NETLIB http www netlib org et de GNU http www gnu org Ce chapitre n est pas un r pertoire de TOUT ce qui existe Ce que nous cherchons dans les biblioth ques et les logiciels existants c est essentiellement le savoir faire les principes de d veloppement qui ont t retenus et surtout le pourquoi A 2 Logiciels et Biblioth ques Objets Nous avons vu que l approche objet est un crit re essentiel de nos d
74. airement chacun des services pr sents dans le contrat IDL Ces servants sont li s aux objets communiquants par le biais du POA et ce sont eux qui r alisent les requ tes des clients sur les objets CORBA De nouvelles classes apparaissent donc dont le nom par convention reprend celui de l objet CORBA accompagn du suffixe _ impl 51 3 7 CONCEPTION D TAILL E CHAPITRE 3 ENVIRONNEMENT control ControlAction boolean getOstream string Ostream getOstreams listOstreams getName string getHostname string getCPUTime double getState string getOwner string checkAccess user string group string boolean addOstream string Ostream void removeOstream string getRealTimeData RealTimeData setRealTimeData RealTimeData view boolean setView boolean void A tOstreams tableau d Ostream AccessAuthorization getOwnerAccess int getGroupAccess int getOtherAccess int View indicateur d exploitation de 1 ex cution tableaux d infos relatives aux ex cutions setRecord Record getList List getRecord int Record checkAccess name string user string group string boolean tgetSize int add string void t getName string remove string void ControlAction control boolean OstreamFormatted getFormat Format setFormat Format struct PingServer N Format Ping du serveur size sho
75. alement H L Q La discr tisation par la m thode d l ments finis repose sur un maillage 7 de Q On supposera que celui ci est compos uniquement de triangles ou de quadrangles maillage ou triangulation homog ne cette restriction sera lev e dans les versions ult rieures L indice h repr sente la taille moyenne d un l ment 63 4 1 DISCR TISATION PAR L MENTS FINIS CHAPITRE 4 APPLICATION La mise en uvre propos e dans ce travail repose sur un formalisme unique quelque soit le mode de discr tisation Nous d crivons le cas des l ments finis On note P l op rateur qui tout f de H lui fait correspondre u de V solution de 4 2 On note V le sous espace de dimension finie de V d fini par Va vn C Q telle que Un Pr T pour tout T 7 et telle que vp 0 sur r o Py 7 est l ensemble des polyn mes de degr inf rieur ou gal k sur T A l espace d l ments finis V est associ un ensemble de degr s de libert Il poss de une base dont on nommera les l ments pour i allant de 1 N la dimension de Vp Classiquement on d finit le probl me discret comme suit On cherche up dans V telle que pour tout vp dans Vp on ait 4 3 v Vun Vun a Un vn f Un On d finit les applications suivantes entre les espaces discrets et les espaces continus Pn V gt Va L application qui tout v de V fait correspondre vp de Vp est d finie par Nn Un 5 v
76. aming contexts qui correspondent en g n ral aux contextes orphelins et qui quivalent aux r pertoires racine d UNIX Le service de nommage permet de lier un nom un objet ceci dans un contexte de nommage de r soudre un nom c est dire d terminer l objet associ au nom dans un contexte donn C 3 2 Le service des Ev nements Event Service Dans CORBA l invocation standard d une m thode consiste en une ex cution synchrone d une op ration fournie par un objet Or pour la plupart des applications un mod le de communication plus d coupl entre objets est n cessaire L OMG a donc d fini un jeu d interfaces eventservice qui permettent la communication asynchrone entre objets Le mod le de POMG est bas sur le paradigme publish subscribe L Event Service permet donc aux objets de produire des v nements asynchrones destination d objets consommateurs travers des canaux d v nements Dans le mod le du service d v nements les fournisseurs produisent les v nements et les consommateurs les re oivent Les deux sont reli s par le canal d venement Event Channel Celui ci convoit les v nements des fournisseurs aux consommateurs sans que ceux ci ne se connaissent Il est responsable de l enregistrement des fournisseurs et consommateurs de l envoi des v ne ments tous les consommateurs enregistr s et du traitement des erreurs associ es aux consomma teurs ne r pondant pas
77. amme de classes du mod le d analyse Mod le d analyse projet sur une architecture de type 3 tiers Sch ma de l architecture physique Diagramme de d ploiement sur l architecture Diagramme U M L du sous syst me User Diagramme U M L du sous syst me Data Diagramme U M L du sous syst me Execution Diagramme U M L des classes g n rales de vue et de gestion Diagramme U M L des classes graphiques li es l objet utilisateur Diagramme U M L des classes graphiques li es aux pages jaunes des ex cutions Diagramme U M L des classes graphiques li es une ex cution Diagramme U M L des classes graphiques li es aux donn es Diagramme U M L des classes issues de la conception de la partie instrumentation du code de caleul asea a Yui EA eg da eee ee dE sell A Diagramme des classes Corba du serveur Diagramme des interfaces IDL des objets communiquants Diagramme des interfaces IDL des fabriques d objets communiquants Gestion des contextes de nom relatifs aux donn es et ex cutions vii 25 3 28 3 29 3 30 3 31 3 32 3 33 3 34 3 39 3 36 3 37 4 1 4 2 4 3 4 4 4 5 4 6 4 7 5 1 5 2 5 3 5 4 5 5 5 6
78. ant un travail collaboratif entre le syst me et les acteurs Chaque Cas d Utilisation donne lieu une description textuelle qui comprend entre autres le sc nario dit nominal Celui ci d roule l ensemble des actions r aliser pour atteindre l objectif de PUC A c t de ce sc nario principal qui d crit le bon fonctionnement du logiciel peuvent intervenir des sc narii secondaires servant traiter les cas d erreurs dysfonctionnements 29 3 3 CONCEPTUALISATION CHAPITRE 3 ENVIRONNEMENT Les UC principaux qui r alisent toutes les fonctionnalit s du syst me sont appel s UC de niveau t che Les tapes de leur sc nario principal peuvent constituer elles m mes des UC appel s UC de niveau fonction Les UC de niveau t che correspondent en g n ral aux interactions relatives aux acteurs primaires Les diff rents Cas d Utilisation du syst me sont d crits dans les sections suivantes On ne consid re ici que la premi re it ration du processus de conception c est dire qu on ne traite que les sc narii principaux de chaque UC Les sc narii secondaires sont tablis lors des it rations suivantes 3 3 1 UC niveau t che UCI Suivre l ex cution Nom Suivre l ex cution But L utilisateur veut visualiser les donn es issues de l ex cution d un code instrument Acteur primaire Utilisateur Acteur secondaire Logiciel de visualisation Sc nario principal 1 Le syst me identifie l utilisa
79. ateur final qui permet d acc der aux objets du module Execution du serveur de donn es 3 6 4 Module View Comme la plupart des interfaces graphiques nous allons utiliser l architecture Model View Controller MVC pour mod liser THM du logiciel Cette architecture est compos e de trois parties le mod le qui est la partie d crivant les donn es afficher la vue qui est la repr sentation graphique de ces donn es le contr leur qui est la partie qui traite des interactions du composant avec l utilisateur Nous pouvons d finir plusieurs types de mod les correspondant aux entit s interagissant avec l utilisateur par le biais de l interface graphique Mod le relatif aux donn es de l utilisateur et aux donn es d identification EndUser et Ac cessData Mod le relatif aux donn es des ex cutions en cours YPCalculs Mod le relatif aux donn es d une ex cution particuli re Calcul Mod le relatif un flux de donn es particulier d une ex cution pr cise VJOstream Chacun de ces mod les a t d finis dans les sections pr c dentes via les sous syst mes d ploy s sur le noeud machine de l utilisateur final Selon l architecture MVC il faut associer chaque mod le une vue et un contr leur Dans notre cas l objet contr leur est pris en charge par le mod le comme l illustre les diagrammes ci dessous Le diagramme 3 18 correspond aux classes g n rales de vue et
80. au de granularit adapt au probl me traiter Il est n cessaire qu au niveau horizontal il y ait une r elle souplesse entre les classes de fa on pouvoir passer d une concr tisation l autre sur un paquetage sans avoir r crire aucun autre changer de discr tisation de domaine de stockage 16 2 4 CONCEPTION DETAILLEE CHAPITRE 2 ANALYSE MATHEMATIQUE GNOINGESTY NVAAIN Freuuoo e6ey9201s 1n9 99A QuUOTIMIOS ET SUUOP LHHOSIA AVAAIN 4TeuUuCD OSTACOUTT oS SSTIESUTT S QUOTIMIOS eT euuop AAA pnos gt s1 91919S1Q 9IqEHEA sTzeeuTT S lt 3Teuuo OSST3519STP 9S SSTISHIDSTP S asTI919STP S QuUOTINIOS eT SUUOP pnos91 9STIPIDSTP es nunuog sulewoq enuljuo9 AJALILA nunuos 1n9 219d0 3Teuuoo nunuo9 ewa qoid 3Tetuuoo ANTINOO NVAAIN le d analyse du probl me math matique FIG 2 3 Mod 17 2 4 CONCEPTION D TAILLEE CHAPITRE 2 ANALYSE MATH MATIQUE qu au niveau vertical il y ait une ind pendance de r alisation qui permettent chacun de travailler son niveau de comp tences La coh sion elle mesure le degr de connectivit existant entre les l ments d une classe unique Dans notre cas les classes sont directement issues des entit s m tiers qu elles mod lisent Elles sont donc naturellement coh rentes Ainsi si on consid re deux instances de la classe Discr tisation
81. bre lin aire Par ailleurs et d un point de vue purement informatique nous sommes conduit travailler dans un environnement multi plateformes et multi langages Enfin l analyse des r sultats des codes au niveau souhait par les num riciens implique la mise en uvre d outils de d veloppements d exploitation et de d pouillement Dans ce projet nous nous sommes fix s deux objectifs principaux avoir une m thodologie de programmation orient e objet pour les math matiques ainsi que pour la gestion de l environne ment et la visualisation des r sultats Pour cela nous pr sentons dans ce rapport un formalisme math matique compatible avec la programmation orient e objet nous d taillons les liens entre les objets math matiques issus de ce formalisme et les classes qui les mod lisent Pr cisons que le but du projet n est pas la cr ation d un g n rateur de code pour la r solution d quations mais la mise disposition d un standart de programmation qui permet de faciliter le d veloppement de codes de calcul r pondant aux crit res cit s plus haut Cette m thodologie a d j t appliqu e des codes utilis s au sein du laboratoire et afin d illustrer la m thode nous pr senterons l analyse compl te d un exemple r solution d un probl me elliptique La structure ainsi construite a pour but de pouvoir tre utilis e facilement au sein d une quipe de travail ce qui entra ne d une part un d coupa
82. calcul des deux op rateurs discrets de notre formulation Nh Jo VunVoidQ Y VurnV d0 YY uy Vo V ida Vun Vi TET T TET j 1 T Nn K Y Y Var Veler TEThj 1 k 1 64 CHAPITRE 4 APPLICATION 4 2 DISCR TISATION PAR DIFF RENCES FINIS o Tk repr sente les coordonn es du k i me point d int gration de l l ment T cz est le coefficient associ et K leur nombre On obtient des formules analogues pour l op rateur identit On construit ainsi une matrice donc les coefficients sont K Aij 5 NO ce VO ter VOi trr TETh k 1 On appelle coefficient l mentaire la contribution d un l ment 7 au coefficient soit K ajj X cVOj Urr Voil trr k 1 Le calcul de ce coefficient l mentaire subit encore une transformation Au lieu de le calculer directement sur l l ment courant 7 on passe par l interm diaire d un l ment de r f rence 7 et de application F qui transforme l l ment de r f rence en l l ment courant 7 Plusieurs fa on de proc der sont encore possible nous avons choisit l interpr tation iso param trique de cette application Cette m thode utilise les fonctions de bases i 1 n41 Cr F g f 5 Jj 1 Cette d finition est aussi valable pour les maillages par des quadrangles et peut tre g n ralis e dans la dimension 3 La matrice jacobienne de F est donn e par J ri i ri i 7 Yi D Vi Di gt Cette transformation peu
83. comporter des tests de structure qui permettent de v rifier le fonctionnement interne d un composant et pour lesquels il faut s assurer que tout le code est bien test chaque instruction devant tre ex cut e au moins une fois Dans le cas de notre syst me il faut par exemple s assurer qu un code instrument peut s ex cu ter en standalone sans aucune contrainte particuli re et videment sans aucune perte de donn es Tests d int gration Les cas d utilisation sont la base des tests d int gration Il s agit de v rifier que les fonctionna lit s attendues et d crites par les cas d utilisation sont effctivement impl ment es Les tests de d ploiements ont donc t r alis s partir des diagrammes de s quence de chacun des cas d utilisation d crits en 3 3 On est ainsi assur d avoir bien r pondu aux attentes exprim s lors de expression des besoins 3 9 It ration du processus Un syst me logiciel passe par un certain nombre de cycles de d veloppement pendant sa dur e de vie Chacun de ces cycles donne lieu une nouvelle version du produit Le processus de d veloppement d un logiciel est donc incr mental Ce point de vue tabli d s le d part permet de prendre en compte au fur et mesure de la vie du syst me de nouvelles fonctionnalit s 59 3 9 ITERATION DU PROCESSUS CHAPITRE 3 ENVIRONNEMENT 3 9 1 Sc narii secondaires des cas d utilisation La nouvelle it ration du processus d
84. contraintes techniques suivantes partage des donn es persistance des donn es s curisation des donn es synchronisation entre le module client et le module de calcul pas de copie des donn es un seul objet par donn e car celles ci peuvent tre tr s importantes en terme de quantit Ces l ments conduisent au diagramme de d ploiement 3 14 illustrant une vue de l architecture physique 3 6 Conception pr liminaire La conception correspond une description de haut niveau du produit en termes de modules et de leurs interactions Il s agit de concevoir les solutions techniques mettre en oeuvre en terme de mod lisation conception pr liminaire et de choix d impl mentation conception d taill e Cette tape consiste ainsi amalgamer les objets et classes d analyse dans l architecture tech nique Cette phase ne se situe plus seulement au niveau des concepts Il faut d terminer comment manipuler ces concepts donc comment les impl menter Pour cela on s appuie sur des patrons achitecturaux Design Pattern qui sont des mod les de conception r utilisables On utilise notamment le pattern Fa ade qui sert d finir une interface unique pour un sous syst me Le d ploiement du sous syst me AllDatas regroupant l ensemble des donn es communiquantes n cessite sa distribution sur plusieurs noeuds 42 CHAPITRE 3 ENVIRONNEMENT 3 6 CONCEPTION PR LIMINAIRE PC Util
85. cture nous pouvons alors d finir les diff rentes entit s ma th matiques intervenant dans chacun des niveaux d crits ci dessus Enfin la concr tisation de ces abstractions math matiques nous conduit la conception d taill e de ces diff rents niveaux 11 2 1 CADRE TH ORIQUE CHAPITRE 2 ANALYSE MATH MATIQUE 2 1 Cadre th orique L objectif du projet est de r soudre de fa on g n rique c est dire quelle que soit la m thode de discr tisation un syst me d quations aux d riv es partielles Dans ce paragraphe nous d crivons une repr sentation unifi e des m thodes de discr tisation usuelles l ments finis diff rences finies et volumes finis Celle ci repose sur des op rateurs de plongement et de restriction d espaces fonctionnels vers des espaces de dimension finie Supposons donc que l on veuille traiter le probl me suivant soitf Wa trouver u W tel que Pu f 2 1 o W et Wa sont deux espaces fonctionnels de mani re tr s g n rale on peut par exemple dire que ce sont des espaces de Banach s parables P repr sente un op rateur lin aire ou non u la solution et f les forces ext rieures Afin de r soudre ce syst me il est n cessaire de d finir un probl me approch c est dire d crire un syst me approch dans des espaces de dimension finie sous la forme soit fa Won trouver un Win tel que Phun fn 2 2 o Win et Wa sont deux espaces de dimension
86. de gestion Le diagramme 3 19 correspond aux vues li es l objet utilisateur Le diagramme 3 20 illustre les vues associ es aux pages jaunes des ex cutions Le diagramme 3 21 concerne les vues relatives une ex cution particuli re 44 CHAPITRE 3 ENVIRONNEMENT 3 6 CONCEPTION PR LIMINAIRE screen Ostream SS getRecord Record setRecord Record void N Persistant OstreamFormatted OstreamUnFormatted VOstreamUnFormatted VOstream getDatas Datas VOstreamFormatted _vostream VOstream A GraphDatas TxtDatas RStream setRecord Record void ROstreamFormatted EE ROstreamUnFormatted A FlowTrace Ey FIG 3 16 Diagramme U M L du sous syst me Data 3 6 CONCEPTION PR LIMINAIRE CHAPITRE 3 ENVIRONNEMENT Execution Singleton YPExecutions list lt Execution gt HaetList Execution e ct yellow pages _user User _datas map lt string Ostream gt getOstream string Ostream executi control ControlAction bool getExecution s list lt Execution gt tring Execution AccessAuthorization ControlAction control Pause Restart Stop pr Process Singleton Process _
87. de la premi re it ration et de modifier ou d ajouter des fonctionnalit s en fonction du retour d exp rience du prototype L approche objet favorise le d veloppement de programmes selon une d marche it rative en capsulation modularit 3 1 Expression du besoin Les membres de l quipe Analyse Num rique et EDP utilisent la librairie de classes du projet GTOOCS pour d velopper des codes de calculs dans le cadre de leurs projets de recherche mais aussi dans le cadre de leur enseignement Ces activit s n cessitent d avoir un retour interactif et complet des calculs qui peuvent tre important en terme de temps d ex cution Il est donc imp ratif d avoir un acc s ces donn es sans contrainte depuis le poste de l utilisateur le code de calcul s ex cutant sur une machine d di e de type supercalculateur Il faut donc avoir la possibilit d instrumenter les codes d velopp s sur la base de la biblioth que GTOOCS 27 3 2 ETUDE PR LIMINAIRE CHAPITRE 3 ENVIRONNEMENT Les informations dont doit pouvoir disposer l utilisateur sont les suivantes sortie standard du code flow trace donn es choisies par l utilisateur lors de l impl mentation de son code La visualisation de ces informations doit se faire selon le choix de l utilisateur et le type des donn es sous forme textuelle ou sous forme graphique ventuellement par le biais d un logiciel de visualisation ext rieur au
88. de recompiler Par ailleurs il sera probablement n cessaire d interfacer ces outils pour les rendre compatibles avec nos outils Le fait d avoir acc s aux sources facilite grandement cet interfa age Il y a deux parties disjointes dans notre revue des outils de calcul scientifique La premi re concerne les outils sp cialis s intervenant un endroit particulier d une m thodologie globale de d veloppement La r solution d un syst me lin aire en est un exemple typique La seconde concerne les travaux qui proposent une m thodologie et des outils pouvant peut tre r pondre notre cahier des charges d fini dans le paragraphe pr c dent Par contre ces d veloppements correspondent aux besoins et contraintes formul s par leurs concepteurs qui peuvent tre diff rents des n tres Il est clair que nous n avons pas la pr tention de tout r crire notamment dans les domaines de l alg bre lin aire des m thodes directes des mailleurs 2D 3D et des applications graphiques en particulier Les trois exemples pr c dents repr sentent trois domaines de comp tences particuliers pour lesquels il existe de tr s nombreux travaux particuli rement performants Reprogrammer tout ce savoir faire est clairement une perte de temps voir m me impossible quand l obtention d une efficacit quivalente Pour le premier la biblioth que LAPACK crit en Fortran 77 et ces variantes CLAPACK LAPACK LAPACK90 et ScaLapack son
89. diagramme de classes 2 5 Pour des raisons de format des caract res les noms des classes ont t simplifi s Probleme correspond Probl me Continu Probleme_h Probl me Discret et Probleme_Algebrique Probl me Alg brique 2 4 2 Conception d taill e du paquetage Op rateur Le paquetage Op rateur comprend les hi rarchies de classes Op rateur Continu Op rateur Discret et Matrice La classe Op rateur Continu manipule peu de donn es car la plupart des op rations se font dans les classes des niveaux inf rieurs Cependant un op rateur est n cessairement d fini sur un domaine donn Ainsi pour d finir un op rateur continu il faut conna tre 19 2 4 CONCEPTION D TAILL E CHAPITRE 2 ANALYSE MATH MATIQUE IN Cr ation du probl me discret Permet de lancer le calcul Appel de la m thode calcule du probl me discret operateurs liste lt Operateur gt donnees liste lt Variable gt solutions liste lt Variable gt domaines liste lt Domaine gt probleme_h Probleme_h init_probleme_discret calcule nouvel_operateur nouvelle_donnee Permet au d veloppeur d ajouter un nouvel op rateur continu ou une nouvelle donn e au probl me IN Cr ation du syst me lin aire Probleme_h operateurs liste lt Operateur_h gt donnees liste lt Variable_h gt solutions liste lt Variable_h gt domaines liste lt Domaine_h gt prob
90. diff rences finis d ordre deux et d ordre quatre Elles sont bas es sur des d finition en dimension 1 les dimensions sup rieurs sont obtenues par produit ext rieur L impl mentation propos e donne des formules diff rentes pour les points proches du bord du m me ordre que celle des points int rieurs Le diagramme UML des diff rentes classes de la hi rarchie Method relatives aux diff rences finies ainsi que les classes utilis es par cette hi rachie est pr sent en 4 6 Method_Factory Method create DiscreteDomain operator string type string Method nb_ctl_dom int nb_lin int nb_col int nb_lin _loc int int nb_col_loc int int lin int int int col int int int val int int int double Finite_Differences_dk fdms map lt string FDMDk gt init_df DiscreteDomain type string FDMDk A The_Fdm FDMDk FDMDk_Rigi struct FDMDk nb_segi nb_segj nb_segk nb_soms nb_elms nb_dlibs tnbk int mxc int elm_bas Tab lt int 2 gt som_bas Tab lt int 2 gt ref_elmt Ref_Elmt fdm_coef FDM_Coef FDM_Coef get_nbk get_mxc get_itb int int nt int int i get_ctb int int double nombre de cas fronti re nombre maximal de coefficicents de mxc mxc coefficients de la matrice distance par rapport au terme diagonal FIG 4 6 Hi rarchie de la classe Method relati
91. e de calcul lt lt Library gt gt CLIENT CPP client_cpp a compile lt lt Library gt gt _ lt lt Executable gt gt IDL CPP corba_cpp a client Sous syst me code de calcul instrument lt lt Library gt gt SQL CPP sql_cpp a Fic 3 36 Diagramme de composants relatif aux ex cutables des codes de calcul CHAPITRE 3 ENVIRONNEMENT 3 9 ITERATION DU PROCESSUS IN R pertoire IHM Ll lt lt class gt gt claskpath 5 IT IDL JAVA class Y pr compile ex cute 7 cladspath L lt lt class gt gt gt SOL JAVA class L lt lt Executable gt gt IHM th gt eee rel SaaS CLIENT JAVA class E Sous syst me interface graphique Java _ dlasspath gt sE lt lt Library gt gt Librairies ext rieures jar Fic 3 37 Diagramme de composants relatif l ex cution de l interface graphiquel 3 8 3 Tests L enchainement des tests s attache la v rification des r sultats de l impl mentation en testant chaque construction aussi bien les constructions internes et interm diaires que les versions finales du syst me La phase de tests est donc essentielle Elle se d compose en tests unitaires et tests d int gration ou de d ploiement Tests unitaires Le propos de cette activit est de tester les composants impl ment s en tant qu unit s in dividuelles Les tests unitaires doivent donc tre fr quents Ils doivent
92. e de pointeurs Cette solution est particuli rement peu souple peu modulaire et donc compl tement inadapt e nos besoins L int r t de la norme du C en mati re de tableaux r sident dans les conteneurs de la biblioth que standart STL Par d finition un conteneur est un objet qui en contient d autres Cette g n ricit est bas e sur le param trage des types On peut citer en exemple les listes les vecteurs les tableaux associatifs qui peuvent contenir des types fondamentaux entier double ou des types utilisateur Chacun des conteneurs de la STL a t con u de fa on optimale pour l approche qu il mod lise ainsi un vector est optimis pour les acc s al atoires tandis qu une list le sera pour les op rations sur les l ments de d but et de fin La biblioth que standard contient aussi une structure de donn es g n riques que l on peut qualifier de presque conteneur car elle n interface pas compl tement tous les aspects des conteneurs Il s agit du valarray qui est un vecteur destin aux traitements num riques optimis s C est cette structure qu il faut retenir pour la manipulation de tableaux standards en C Par contre il faut noter que le multi indi age n est pas imm diat et n cessite l interfa age de la structure A 4 2 Le standard de JAVA Java g re les tableaux de type int gr et de r f rence avec des lancements d exceptions lors des acc s hors borne Il est
93. e serveur de donn es Le langage choisit pour l impl mentation de la partie serveur de donn es est le C De plus le serveur communique avec les autres sous syst mes par l interm diaire du protocole CORBA Ces n cessit s techniques font appara tre de nouvelles classes n cessaires la mise en place d un serveur CORBA Ainsi il va falloir d tailler certains aspects propres ce protocole Les objets et services CORBA les objets communiquants et leur contrat IDL les fabriques d objets associ es aux objets communiquants Classes Corba Une nouvelle classe CorbaServer permet d initialiser les r f rences CORBA et les services CORBA indispensables au bon fonctionnement du serveur Ceux ci sont list s ci dessous L ORB L ORB Object Request Broker est le noyau de transports de requ tes aux objets distribu s Il int gre notamment le protocole IIOP Internet Inter ORB Protocol permettant lin terconnexion de bus CORBA au dessus de TCP IP L ORB permet de contr ler le comportement du bus entres autres de cr er les autres objets repr sentants les composantes du bus ou d obtenir les r f rences des objets particuliers tels que les diff rents services CORBA Le POA Le POA Portable Object Adapter est l adaptateur d objet permettant la g n ration et l interpr tation des r f rences d objets la connaissance de l implantation courante associ e un objet la d l gati
94. e sur l h te et le port donn Compte tenu des notions g n rales que l on vient de d crire le d veloppement d une application CORBA de type client serveur suit les tapes ci dessous 120 C 2 FONCTIONNEMENT DU BUS D OBJETS R PARTIS ET DU PROCESSUS ANNEXE C CORBA MECANISMES DE FONCTIONNHMIBIVDCATION DES REQU TES 1 2 3 4 D terminer les objets de l application et d finir leurs interfaces IDL Compiler les d finitions IDL en stubs et skeletons D clarer et impl menter les classes servants qui incarnent les objets CORBA Ecrire un programme principal pour le serveur initialisation de PORB et du POA Portable Object Adapter cr ation de servants d claration de ces servants dans le POA pour faire en sorte que les servants incarnent les objets CORBA attendre les requ tes Compiler et linker l impl mentation du serveur avec les stubs et les skeletons et cr er l ex cutable serveur Ecrire compiler et linker le code client avec les stubs obtention des r f rences des objets invocation d op ration sur les objets CORBA C 2 Fonctionnement du bus d objets r partis et du processus d invocation des requ tes Le bus CORBA est le noyau de communication travers lequel les objets vont dialoguer Il a les caract ristiques suivantes La liaison avec beaucoup de langages de programmation actuellement POMG a d fini cette liaison pour les la
95. ecution 3 0 4 Module View ac iaa a a eS 3 0 0 Module Code sia a oi rra A a eo Conception d taill e oo o a s mom a 3 7 1 Conception d taill e du sous syst me serveur de donn es 3 7 2 Conception d taill e du sous syst me code de calcul 3 7 3 Conception d taill e du sous syst me utilisateur final Impl mentation et tests 3 8 1 Choix techniques pour l impl mentation 3 8 2 Mod le d impl mentation diagramme de composants A E A anses Ae It ration du processus o o s ss ie ee 3 9 1 Sc narii secondaires des cas d utilisation 3 9 2 Nouvelles fonctionnalit s II De la conception la programmation 4 Application 4 1 4 2 4 3 Discr tisation par l ments finis Discr tisation par diff rences finis Mis en uvr Au ee epee ES a 4 AMAR LASER 4 3 1 D finition du probl me 4 3 2 H paquetage Problem s s i o a eee ne ge dust ae ete aaa LA EE G 4 3 3 Le paquetage Variable 4 3 4 Le paquetage Operateur 4 3 5 Le paquetage Domain 43 6 La classe Method 2 22 toa ane e eee See eh a a 43 0 El ments nisi Es pee A A ee A hee SA 4 38 Diff
96. emple sans modifier le reste du code S Labb para tre donne une description unifi e des principales m thodes de discr tisation voir galement 2 Notre mise en uvre doit pouvoir int grer ce formalisme Enfin les m thodes de r solution lin aire et les techniques de stockage associ es forment un ensemble part Des biblioth ques externes sont utilis es de fa on courantes pour ces op rations Cet ensemble de bas niveau doit avant tout rester tr s efficace Mais il doit galement pourvoir tre interchangable Les objectifs et les contraintes que nous venons de fixer nous permettent ainsi de cadrer notre recherche par rapport aux outils et biblioth ques existants dont le paragraphe suivant pr sente un aper u non exhaustif 1 3 L tat de l art en biblioth ques et en outils de calcul scientifique Ce paragraphe repr sente un r sum de l annexe A L ensemble des biblioth ques et des outils de calcul scientifique est immense Il n est pas question ici de faire le tour complet de cet ensemble Il est donc vident que le contenu de ce paragraphe et de l annexe est partiel et partial Nous avons d cid de ne consid rer que les outils du domaine publique dont les sources sont disponibles Les raisons de ce choix tr s restrictif sont videmment financi res mais elles portent aussi sur des questions de disponibilit et de portabilit des outils quelque soit l environnement de travail puisqu il suffit
97. en utiliser Microsoft Windows tandis que le calcul s effectue sur une machine Unix d di e Il est donc im portant que les choix techniques qui vont tre fait dans les sections suivantes soient compatibles avec cette diversit Choix des protocoles r seaux Le protocole r seau qui permet de r pondre la contrainte exprim e en 3 5 2 est le protocole TCP IP Ainsi le choix du mod le de distribution doit prendre en compte cette exigence suppl mentaire Choix des langages de programmation L interface graphique s ex cute sur la machine de l utilisateur final Le langage de programmation de cette interface doit donc tre multi os confor m ment la contrainte exprim e en 3 5 2 Pour assurer un portage maximal le choix du langage Java para t adapt Le calcul est effectu le plus souvent sur une machine d di e de type supercalculateur Le langage de programmation principal doit avant tout tre objet et performant Cependant il est parfaitement envisageable d utiliser des langages de programmation secondaires non objet pour optimiser l efficacit des calculs Le langage objet portable performant et standardis le plus int ressant est le C D autre part il s interface facilement avec des langages plus ax s calculs num riques comme le fortran 77 ou le fortran 90 Quelques outils notamment concernant la g n ration de la documentation issue des sources des programmes n cessitent la mise en oeuvre d un langage de scrip
98. ent toujours tre disposition Elles sont distribu es aux machines d ex ploitation Celles ci doivent donc avoir connaissance de la localisation du stockage de ces donn es A partir de ces contraintes on peut d finir une premi re vue logique de l architecture du logiciel Les objets m tiers Code sont regroup s dans le paquetage Calculation Les objets circulants et persistants Data User Execution sont contenus dans le paquetage AllDatas Les composants miroirs des objets pr c dents sont contenus dans le paquetage IHM Le diagramme 3 12 pr sente ces diff rents paquetages du mod le d analyse projet s sur une architecture de type 3 tiers IHM traitements et donn es Execution Calculation Fic 3 12 Mod le d analyse projet sur une architecture de type 3 tiers 40 CHAPITRE 3 ENVIRONNEMENT 3 5 ARCHITECTURE A partir cette d composition 3 tiers il est n cessaire de faire les bons choix techniques en fonction de l tat de l art et de l volution pr vue du logiciel La mise en oeuvre d un mod le d architecture distribu e semble n cessaire Ce mod le doit r pondre des crit res techniques pr cis explicit s dans les sections suivantes 3 5 2 Architecture mat rielle Choix techniques Choix des syst mes d exploitation Les syst mes d exploitation sur lesquels doivent fonc tionner le logiciel sont h t rog nes En effet le poste de l utilisateur final peut tr s bi
99. entaires de niveau 1 BLAS 1 c est dire d op rations sur des tableaux monodimensionnels Elles sont particuli re ment bien adapt es aux calculateurs vectoriels pour lesquels le BLAS 1 pouvait tre particuli re ment bien optimis L ensemble BLAS LAPACK SCALAPACK Cet ensemble repr sente une refonte compl te des biblioth ques LINPACK et EISPACK Par l utilisation de BLAS de niveau 2 et 3 LAPACK est bien adapt e aux machines hi rarchie de m moires caches La version d origine est crite en FORTRAN 77 mais elle poss de des versions en C CLAPACK en C LAPACK en FORTRAN 9X LAPACK90 et galement une version parall le SCALAPACK De ce fait nous ferons une tude compl te de cet ensemble qui est un standard de fait dans le monde de l alg bre lin aire De plus les versions C et FORTRAN 90 interviennent dans le cadre d une r flexion sur l encapsulation de sous programmes proc duraux dans des langages objets ou orient s objets BLAS est un ensemble de sous programmes d alg bre lin aire l mentaires crits en FORTRAN 77 On distingue le BLAS 1 qui travaille sur des vecteurs voir LINPACK le BLAS 2 qui travaille sur des matrices et le BLAS 3 qui est une version par blocs des BLAS de ni veaux inf rieurs Les BLAS forment les sous programmes de base de LAPACK Des versions constructeurs existent optimis s sur chaque plateforme LAPACK est un ensemble de sous programmes FORTRAN
100. ents finis qu une grille pour les diff rences finies Le point commun de ces sp cialisations est qu ils sont constitu s de domaines de contr le mailles Les services propos s par la classe g n rique Domaine Discret doivent donc permettre de parcourir ces domaines de contr le d y acc der ou de les manipuler Comme pr c demment ces classes sont des classes abstraites dont la r alisation d pend des 22 CHAPITRE 2 ANALYSE MATH MATIQUE 2 4 CONCEPTION D TAILL E sp cialisations qui seront impl ment es en fonction du probl me math matique int ressant le d veloppeur Le diagramme de classes UML 2 8 pr sente la mod lisation du paquetage Domaine en renom mant Domaine Continu en Domaine et Domaine Discret en Domaine_h Domaine domaine_h Domaine h init_domaine_ discret Les m thodes permettent d acc der aux domaines de contr le de les parcourir ou de les manipuler num rotation acc de_ l ment parcoure_ l ment manipule _ l ment Fic 2 8 Diagramme de classes du paquetage Domaine 2 4 5 Conception d taill e de la hi rarchie Discr tisation Les instances de cette classe constitue les choix du d veloppeur en mati re de discr tisation du probl me continu Il sera donc naturel de la sp cialiser en fonction des grandes familles de discr tisation diff rences finies volumes finis l ments finis Les instances de la classe D
101. epository IR C est le r f rentiel des interfaces Il contient toutes les d finitions des interfaces des objets du bus d finitions IDL Ces informations sont accessibles par les m canismes d invocations statiques et dynamiques D IR est donc le composant de PORB qui fournit un stockage persistant des d finitions d interfaces il g re et permet l acc s une collection de d finitions d objets sp cifi s en IDL L ORB peut utiliser les d finitions d objets contenues dans TR pour interpr ter manipuler les valeurs fournies lors d une requ te Pour permettre la v rification du type des signatures des requ tes Pour aider fournir l interop rabilit entre diff rentes impl mentations de l ORB ORB Interface Il permet d acc der certaines fonctionnalit s du bus initialisation para m trage de l environnement CORBA outils de manipulation des r f rences instanciation conversion et gestion de la m moire GIOP IIOP Le GIOP General Inter ORB Protocol permet deux ORB de communiquer L TIOP Internet Inter ORB Protocol sp cifie comment le GIOP est impl ment par dessus le protocole TCP IP L interop rabilit de PORB n cessite de standardiser les formats des r f rences des objets par l interm diaire de l Interoperable Object Reference IOR Pour lIIOP PIOR est constitu du nom de l h te d un port TCP IP et d une cl objet identifiant l objet cibl
102. erver_impl _instance 0 PingServer_impl PingServer_impl _instancelmpl 0 PP SR SE AA dla Static method to declared the unique instance of the class void PingServer_impl instance E SRE RES Constructor PingServer_impl PingServer_impl JI peee ee Destructor PingServer_impl PingServer_impl 104 CHAPITRE 6 DOCUMENTATION 6 4 EXEMPLES o Rene es un Pinging the server void PingServer_impl ping throw CORBA SystemException E E O o age soe Anno End of the server void PingServer_impl end end Documentation g n r e Dans le cas du C makedoc g n re une documentation globale pour le fichier ent te et le fichier impl mentation correspondant Les figures 6 4 et 6 5 illustrent la visualisation HTML de cette documentation Documentation du fichier PingServer_impl cpp Internal Documentation for snome louvet GTOOCS jInstrum SERVER PingServer_impl h G TOOCS r Copyright Version and Updates Equipe Analyse Numerique Universite de Paris Sud 91405 ORSAY CEDEX Description pour le test de la connexion au serveur Classe Singleton Classe servant implementant l interface CORBA Ping 1 Modifications 31 12 02 1 0 Y Louvet Creation FIG 6 4 Visualisation de la documentation g n r e pour le code source en C l re partie 105 6 4 EXEMPLES CHAPITRE 6 DOCUMENTATION
103. es hi rarchies des op rateurs ont t explicit es en 2 Nous ne d taillons ici que les op rateurs concrets utilis s dans le probl me qui nous int resse Les op rateurs de masse MassOperator et de rigidit RigiOperator sont des sp cialisations des classes abstraites LinearOperator Elles sont associ es au niveau discret aux classes DiscreteMassOperator et DiscreteRigiOperator Les instances de ces classes permettent de construire les matrices associ es de fa on ind pendante de la m thode de stockage choisie 4 3 5 Le paquetage Domain La classe g n rique du domaine de calcul doit fournir une description du domaine de calcul mais aussi les informations n cessaires la remont e des solutions discr tes vers le niveau continu comme l ensemble des points o l utilisateur final du programme d sire observer les solutions par exemple Dans le cadre de cette application tous les domaines sont de dimension 2 Au niveau continu un objet Domain permet de r cup rer les donn es indispensables la construction du domaine discret associ 69 4 3 MISE EN UVRE CHAPITRE 4 APPLICATION Il y a de nombreuses fa ons de d finir le domaine de calcul soit analytiquement disque de centre et de rayon donn s soit discr tement en donnant un maillage initial d finissant les points d observation des solutions Ces deux techniques sont possibles par l interm diaire des constructeurs La classe DiscreteDomain es
104. ette structure s accompagne d un outil makedoc permettant la g n ration de la documentation HTML associ e d une interface graphique facilitant l utilisation de cet outil Makedoc est un outil d extraction automatique de la documentation relative un programme informatique Les langages disponibles dans la version actuelle sont les suivants Fortran 90 C perl idl Java Il fonctionne l aide de mots cl s introduit sous forme de commentaires dans les programmes permettant de d composer la documentation en diff rents paragraphes La documentation est g n r e directement partir des lignes actives du programme et a donc l int r t primordial d tre forc ment jour chaque fois qu elle est demand e Plusieurs niveaux de documentation peuvent tre extraits selon que l on destine la documenta tion un d veloppeur utilisant le programme ou un programmeur intervenant sur le programme Le programme d extraction est crit en perl La documentation est g n r e en html Dans le cas du C on extrait la documentation du h et du cpp associ dans le m me fichier html Cet outil a t initialement d velopp dans le cadre de la biblioth que Fortran 90 orient e objet mise en oeuvre au Laboratoire de Math matique d Orsay 6 1 Niveau de documentation Nous d finissons deux niveaux de documentation 1 Le niveau utilisateur que l on notera l
105. eur FIG 5 4 Fen tre donnant les informations de flux issus d un calcul accessible par l interface graphique Visualisation sous format textuel Tous les flux peuvent tre visualis s de fa on textuelle Le menu Texte contient deux items Show Al permet de visualiser l ensemble des enregistrements de ce flux Show Last Records permet de visualiser les derniers enregistrements de ce flux Une fen tre de dialogue permet d indiquer le nombre d enregistrements souhait s L exemple 5 5 illustre la visualisation du flux associ la variable Cout Session Open Windows Update Ed CS louvet connect E Calcul TST OPERATOR Hs E ostream Cout emps n Etat du eff 21 OPERATOR Read a domain e MESH Read a Discrete Domain from a MESH file READ MESH Domain test 2d mesh READ MESH ricode 1 StoP From Print Domain impression du domain Mesh Type TRI 2D pace dimension 2 Number of elements 8 Number of vertices Number of faces Number of edges 1 Number of vertices par element 3 ertices data 1 0 00000e 00 0 00000e 00 12 5 00000e 01 0 00000e 00 pe 1 00000e 00 0 00000e 00 4 0 00000e 00 5 00000e 01 5 5 00000e 01 5 00000e 01 6 1 00000e 00 5 00000e 01 17 0 00000e 00 1 00000e 00 8 5 00000e 01 1 000008 00 9 1 00000e 00 1 00000e 00 Elements data Read a Discrete Domain from Domain test 2d mesh Louvet
106. eur cette entit correspond la notion d op rateur continu illustr dans l tude th orique par la notation P par exemple laplacien grad div d riv e par rapport x trace sur le bord Discretisation cette abstraction repr sente les m thode de projection et de rel vement des espaces continus vers les espaces discrets et inversement 13 2 2 ANALYSE CHAPITRE 2 ANALYSE MATH MATIQUE La notion d op rateur nous conduit de fa on naturelle la notion de variable une quation correspondant l application d op rateurs un certain nombre de variables Nous caract risons ainsi un nouveau concept Variable cette entit se rapporte aux l ments des diff rents espaces de dimension infinie manipul s dans le probl me r soudre Elle correspond par exemple aux solutions des qua tions aux conditions initiales Les variables peuvent tre de type volumique ou de type surfacique selon qu elles sont d finies l int rieur du domaine ou sur le bord Enfin les espaces sont d finis sur des domaines que l on peut caract riser de la fa on suivante Domaine cet objet math matique repr sente la topologie continue ou discr te des domaines en g n ral de R sur lesquels les espaces fonctionnels sont d finis Les entit s pr c dentes correspondent tous les l ments intervenant dans un probl me ma th matique tel qu il a t d fini dans la partie th orique 2
107. evell 2 Le niveau programmeur que l on notera level2 97 6 2 STRUCTURATION DE LA DOCUMENTATION CHAPITRE 6 DOCUMENTATION Chacun des mots cl s permettant l extraction de la documentation va correspondre l un de ces niveaux Makedoc permet ainsi de g n rer une documentation au cas par cas Un programme bien document permettra donc de donner les explications n cessaires 1 la description du contenu du programme ce sont les commentaires de niveau 1 levell donnant des informations g n rales objectifs fonctionnement includes n cessaires sous programmes appel s 2 la compr hension des algorithmes implant s il s agit alors de comentaires techniques de niveau 2 level2 Tous les commentaires se trouvant en niveau 1 de documentation c est dire le niveau uti lisateur se trouvent galement par d faut en niveau 2 c est dire programmeur A chaque description de mot cl ci dessous se trouve associ un niveau d extration de documentation Cette documentation se veut interactive c est dire qu elle est jour chaque modification du programme Elle ne doit pas tre un doublon des commentaires propres au programme elle doit tre ces commentaires 6 2 Structuration de la documentation On distingue deux parties dans la documentation L ent te Le corps du programme Aucun mot cl n est obligatoire except s les mots cl s signalant le d but et la fin de la docu
108. ge est de type agr gation simple le r le des instances de la classe Stockage tant analogue au niveau alg brique celui des instances de la classe Discr tisation au niveau discret Les classes g n riques du paquetage sont donc d sormais fix es Il faut maintenant s attacher valuer l impact des diff rents type d op rateurs sur leurs mod les informatiques En effet un op rateur lin aire ne pourra pas tre trait de la m me fa on qu un op rateur non lin aire Certains traitements sont sp cifiques l une ou l autre de ces cat gories d op rateurs La sp cialisation des classes Op rateur Continu et Op rateur Discret en fonction de la lin arit de l op rateur appara t donc de fa on naturelle Toutes ces classes sont des classes abstraites Elles n ont de r alit que par le biais des sp cia lisations qui en seront faites en fonction des probl mes math matiques traiter La mod lisation UML de la conception d taill e du paquetage Op rateur est repr sent e par le diagramme de classe 2 6 Elle comprend les nouvelles hi rarchies sp cialisant les op rateurs en op rateur lin aire et non lin aire Comme pr c demment les noms ont t normalis Operateur correspond Op rateur Continu et Operateur_h Op rateur Discret domaines liste lt Domaine gt operateur_h Operateur_h init_operateur_discret Operateur_Lineaire Operateur_Non_Lineaire O
109. ge tr s clair des classes en fonction des domaines 1Laboratoire de Math matique Analyse Num rique et EDP Universit Paris Sud 2CEA 3Doctorant Laboratoire de Math matique Analyse Num rique et EDP Universit Paris Sud de comp tences mais aussi une d finition pr cise des classes g n riques repr sentant les objets math matiques manipul s La m thodologie que nous pr sentons dans cet ouvrage est bas e sur un d coupage net des classes par comp tences Trois niveaux hi rarchiques sont distinguer le premier g rant la d fini tion formel du probl me math matique le deuxi me la description de la m thode de discr tisation employ e et enfin le troisi me g rant la r solution alg brique du probl me trait Verticalement cette structure sont superpos s quatre blocs distincts le probl me les op rateurs les variables et enfin les domaines de calcul Il est noter que sur les niveaux discret et alg brique un cinqui me bloc est n cessaire d crivant pour l un la m thode de discr tisation et pour l autre la m thode de stockage Nous fournissons aux programmeurs des paquetages de classes g n riques leur permet tant de construire leurs propres hi rarchies sp cifiques au probl me qu ils veulent traiter mais aussi des paquetages de communication fournis avec des outils de visualisation et contr le de code Ce document est compos de deux parties La premi re d crit la d marche m thodologi
110. gistrements E KITS InternalView Format VOstreamView _format Label _model VOstream _intFrame InternalFrame InternalView DataChoiceView _model DataChoice DataChoice ValidData string ValidDataNb int x y Aucun datal data2 datal data2 poo O oO InternalView DataView TxtDataView Graph2DDataView _model GraphDatas HimiDataView Fic 3 22 Diagramme U M L des classes graphiques li es aux donn es Singleton InstrumentedCode STOS L objet Process contient les instances uniques de InstrumentedCode FlowTrace Cout list lt Source gt Context _rstream list lt ROstream gt create string void create string Format void operator string ROstreamUnFormatted operator string ROstreamFormatted _name string Chaque classe instrument e impl ment un objet de la classe Context FIG 3 23 Diagramme U M L des classes issues de la conception de la partie instrumentation du code de calcul 49 3 7 CONCEPTION D TAILL E CHAPITRE 3 ENVIRONNEMENT conception d taill e des classes du sous syst me utilisateur final Pour des raisons de place et de lisibilit seules quelques classes importantes issues de la conception d taill e seront illustr es par des diagrammes UML 3 7 1 Conception d taill e du sous syst m
111. grammes de classe qui corres pondent une vue de la structure statique du probl me mod liser Cela ne peut en aucun cas tre une vue globale de ce langage de mod lisation ni m me une vue particuli re sur le mod le statique 116 Annexe C CORBA m canismes de fonctionnement C 1 Concepts et notions La norme CORBA est n e des r flexions d un consortium international de l industrie de l inor matique cr e en 1989 LOMG Object Management Group L objectif de ce groupe est de faciliter l mergence de standards pour les applications utilisant les technologies orient s objets dans un contexte d environnements distribu s h t rog nes L OMG se fixe ainsi pour but le d veloppement d applications distribu es dont les composants collaborent avec Efficacit Fiabilit Transparence Scalability c est dire une capacit d volution importante Les sp cifications produites par OMG sont d finies dans POMA Object Management Archi tecture qui correspond au mod le de r f rence et pr cise les concepts et l architecture Son noyau s appelle CORBA Les principes de CORBA sont Une s paration stricte Interface Impl mentation La transparence de la localisation des objets La transparence de l acc s aux objets Le typage des R f rences d Objets par les interfaces L h ritage multiple d interfaces Les sp cifications de POMA s appuient sur l approche
112. group s lors de l laboration du mod le d analyse qui en s appuyant sur un d coupage m tier des entit s permet de combiner toutes les informations Cette ultime phase de l analyse permet d obtenir une vue quasi id ale interne du logiciel c est dire sans trop tenir compte des contingences de conception qui existent entre 3 4 1 Analyse du domaine La phase d analyse commence par recenser et d tailler l ensemble des substantifs apparaissant dans la phase de conception Il s agit de repr senter tout ce qui est manipul par le logiciel Une premi re repr sentation textuelle consiste en l laboration d un glossaire permettant la d finition des entit s constituant le logiciel Nom D finition Ex cution Process correspondant l ex cution d un code de calcul Execution instrument Utilisateur Personne poss dant les autorisations d acc s pour acc der EndUser aux ex cutions des codes instrument s Codelnstrument Code de calcul int grant les m canismes permettant InstrumentedCode l exploitation distante des donn es LogicielVisualisation Outil permettant de visualiser graphiquement des donn es Visual Tool ActionContr le Action permettant l utilisateur d agir sur ControlAction l ex cution d un code instrument Suspendre Action de suspendre l ex cution d un code Pause Arr ter Action d arr ter l ex cution d un code
113. i rarchie de classe Stockage est pr sent dans le diagramme 2 10 Stockage accede_element remplit_element produit matrice vecteur Vecteur Vecteur Fic 2 10 Diagramme de classes de la hi rarchie Stockage 2 4 7 Conception d taill e des classes utilitaires Toutes les classes math matiques issues de la conception d taill e travaillent dans un environ nement plus global permettant la gestion des flux d entr e et de sorties La mod lisation compl te de cet environnement fait l objet de la section 3 Cet environnement est constitu de classes utilitaires qui permettent d instrumenter les classes math matiques en terme de suivi informatique profiling sortie standard et de suivi du calcul entr e et sortie de flux choisis par le d veloppeur Une programmation distribu e permet de rationaliser l utilisation des moyens informatiques Le diagramme de composants 2 11 illustre les communications chang es entre les classes ma th matiques et les classes utilitaires travers l architecture distribu e 24 CHAPITRE 2 ANALYSE MATH MATIQUE 2 4 CONCEPTION D TAILL E Ll classes math matiques a changes de flux BUS DISTRIBUE de flux change __ classes utilitaires E Fic 2 11 Diagramme de composants illustrant les communications entres les classes math ma tiques et les classes utilitaires 25 2 4 CONCEPTION D TAILL E CHAPITRE 2 ANALYSE
114. idi i l o v repr sente la valeur de v au i i me degr de libert associ la fonction 6 De fa on analogue on d finit H un sous espace de dimension finie de H H Lor C Q telle que Un P T pour tout T Th Le degr des polyn mes k peut tre diff rent de celui de l espace Vp On d finit l op rateur an H gt H de fa on analogue la d finition de l op rateur p On note p pour i allant de 1 My la base de H Mp est le cardinal de H On a donc le diagramme suivant Ph Hy Vr Ph 1 LG H AS Y Ph T l Gh He APE W L op rateur discret P est donc d fini par Ph qn oP 0p Cette d finition de l op rateur discret est quivalente la premi re qui a t donn e Ici les espaces discrets sont des sous espaces des espaces continus les op rateurs p et q sont des injections Pour notre exemple H et Hp sont les espaces dans lesquels vivent respectivement les seconds membres continu et discret Dans notre cas ce second membre sera donn analytiquement voir le paragraphe 4 3 Il ne serait donc pas utile de d finir l espace Hp mais par compatibilit avec les autres m thodes de discr tisation nous conserverons la discr tisation de la fonction source f et Pon choisira k k afin de ne g rer qu un seul type d l ments finis Il reste expliciter la forme matricielle du probl me discret Ph On utilise une formule d int gration num rique pour le
115. ie Stockage 2 4 7 Conception d taill e des classes utilitaires Environnement 3 1 Expression du besoin esa ea m ma ag mul a be ALAN at Bee de eal as 3 2 Etude pr liminaire s or ioy o eee ee G dada G 3 2 1 Environnement de travail 32125 LACL ULS ain a EN Aa ee ee ate MMS NA ee Es 3 29 interactions s 2 2 me oe eds ne mie ea En bb ae RB 3 2 4 Diagramme de contexte 3 3 Conceptualisation ee 3 3 UC niveau tache 4 4 diia dt a A A RE AR dd ges 33 2 UC niveau fonction is 44 E a a an an a e eu 3 3 3 Diagramme de cas d utilisation 3 3 4 Sp cification du besoin relatif l interface graphique iii O0 O0 Daroca NNNNNReRR R nr gt ND ND OO OO amp ND A 3 4 3 5 3 6 3 7 3 8 3 9 Analyse r s a Er A e a ie do Haas 3 4 1 Analyse du domaine 3 4 2 Analyse applicative ee 3 4 3 Mod le d analyse Architectures 2 A A A RUE EN a 4 3 5 1 Architecture logicielle 3 5 2 Architecture mat rielle Conception pr liminaire 3 6 1 Module User u danska a gran e aa a a a ee tee ee a a 3 6 2 Module Data 3 6 3 Module Ex
116. ilisateur But Le logiciel doit identifier l utilisateur qui veut se connecter Niveau Fonction Acteur primaire Utilisateur Sc nario principal 1 L utilisateur fournit les informations d acc s au logiciel 2 Le logiciel identifie l utilisateur UC5 Acc der une ex cution Nom Acc der une ex cution But L utilisateur acc de l ex cution qui l int resse Niveau Fonction Acteur primaire Utilisateur Pr condition Utilisateur identifi par le logiciel UCA4 Sc nario principal 1 Le logiciel affiche la liste des ex cutions en cours 2 L utilisateur choisit l ex cution qui l int resse 3 Le logiciel v rifie l autorisation d acc s cette ex cution UC6 Visualiser les donn es d une ex cution Nom Visualiser les donn es d une ex cution But L utilisateur acc de aux donn es d une ex cution et les visualise Niveau Fonction Acteur Primaire Utilisateur Acteur Secondaire Logiciel de visualisation Pr condition L utilisateur a acc d l ex cution UC5 Sc nario principal 1 Le logiciel affiche la liste des donn es relatives l ex cution 2 L utilisateur choisit la donn e visualiser 3 L utilisateur choisit le mode de visualisation pour cette donn e texte graphique statis tiques 4 Le logiciel affiche la donn e ventuellement gr ce au logiciel de visualisation 3 3 3 Diagramme de cas d utilisation Les diff rents
117. int itmax double eps push DiscreteProblem solve if _ind_la 1 _algebric gt solve inv itmax eps pop 5 2 6 Instrumentation d un fichier source L instrumentation d une zone de programme se fait par l interm diaire d une l instance de la classe Context Cette instance permet de cr er des flux distribu s d acc der simplement 4 ces flux distribu s Cr ation des flux distribu s La cr ation des objets flux distribu s se fait par l interm diaire des m thodes create de la classe Context create string nom cette m thode permet la cr ation d un flux de donn es non formatt dont le nom est donn en argument create string nom string type int nbre cette m thode permet la cr ation d un flux de donn es formatt nomm nom et constitu d un ensemble de nbre valeur de type type create string nom int nbre string typel int nbrel string type2 int nbre2 cette m thode permet la cr ation d un flux de donn es formatt nomm nom et constitu de nbre l ments le premier est un ensemble de nbre1 valeur de type typel le deuxi me est un ensemble de nbre2 valeur de type type Les noms de flux doivent tre uniques pour une ex cution donn e Comme pour le nom de l ex cution si ce nom existe d j le programme ajoute un 0 jusqu obtenir un nom non utilis Les types disponibles sont string type cha ne de ca
118. ion Rigi amp ASol Discr tisation du probl me continu La m thode de discr tisation est choisie interactivement par l utilisateur et permet la discr tisation du probl me continu par l interm diaire de la m thode init_h Caracterization of the discretisation method string meth_id cout lt lt TST PROBLEM Enter the discretization Method lt lt endl cout lt lt ATTENTION for FEM you must add INTG FEM INTG cin gt gt meth_id cout lt lt endl Discretization of the problem DiscreteProblem problem_h problem init_h meth_id Lin arisation du probl me discret Le choix de la m thode de stockage se fait pour chacun des op rateurs du probl me de facon interactive Elle permet de pouvoir g n rer le probl me alg brique associ au probl me discret par le biais de la m thode init_la Caracterization of the storage map lt string string gt stock string stor_id cout lt lt TST PROBLEM Enter the Storage Method lt lt endl cin gt gt stor_id cout lt lt endl stock Rigi stor_id Construction of the algebric problem problem_h gt init_la stock R solution du probl me et visualisation de la solution La r solution du probl me au niveau continu par la m thode solve entraine en cascade l inver sion des syst mes alg briques La visualisation de la solution sous format texte se fait simplement en utilisant l op rateur Solving
119. ion d un probl me elliptique Introduction Ce document accompagne le rapport sur la programmation orient e objet pour le calcul scien tifique Il en constitue le premier exemple d application Il contient le guide d utilisation d un programme de r solution du probl me elliptique suivant vAu au f 4 1 discr tis par l ments finis par diff rences finis et bient t par volumes finis Ce probl me est pos dans Q un domaine born de R Enfin nous supposerons que la solution u est donn e sur une partie du bord 00 de Q Le langage utilis pour cet exemple est le C Dans les paragraphes 4 1 et 4 2 nous d crirons la discr tisation du probl me 4 1 en l ments finis et en diff rences finis respectivement La mise en uvre fera l objet du paragraphe 4 3 4 1 Discr tisation par l ments finis On consid re un ouvert polygonal born Q de R On cherche la solution du probl me 4 1 suivant vAu au f dans Q u 0 sur o y et a sont deux nombres r els donn s v gt 0 et a gt 0 On suppose que f est une fonction de carr sommable Pour discr tiser ce probl me par une m thode d l ments finis on consid re sa formulation variationnelle suivante On cherche u dans V telle que pour tout v dans V on ait 4 2 v Vu Vv a u v f v o repr sente le produit scalaire dans L Q et V l espace fonctionnelle V v H Q telle que v 0 sur T On notera g
120. ion faible Pour d finir un syst me lin aire il faut construire la liste des matrices lin arisant les op rateurs discrets du probl me discret correspondant la liste des vecteurs lin arisant les donn es discr tes du probl me discret correspondant la liste des vecteurs lin arisant les inconnues discr tes du probl me discret correspondant La mise en uvre informatique des matrices et vecteurs n cessite le choix d une m thode de stockage optimisant l espace m moire utilis et l acc s aux l ments Comme pour le niveau pr c dent la cr ation du syst me lin aire est g r par le probl me discret Les services propos s par la classe Probl me Alg brique sont donc d un seul type des services de contr le de la r solution r lisant la troisi me phase de cette r solution qui consiste en l inversion du syst me lin aire et au calcul de la solution vectorielle Les associations entre l objet Probl me Alg brique et les objets des classe Matrice et Vecteur sont de type agr gations faibles comme pour les niveaux pr c dents L objet Stockage joue au niveau alg brique le m me r le que l objet Discr tisation au niveau discret Les classes Probl me Alg brique et Stockage sont donc associ e par une agr gation simple pour des raisons analogues celles voqu es au niveau pr c dent La mod lisation UML de la conception d taill e du paquetage Probl me est illustr e par le
121. isateur TCP IP Serveur de donn es Serveur Base de Donn es TCP IP SuperCalculateur Fic 3 14 Diagramme de d ploiement sur l architecture le noeud du serveur de donn es qui conna t la localisation physique des donn es le noeud du supercalculateur qui met jour les donn es par l interm diaire du serveur et r cup re ventuellement les modifications qui ont eu lieu sur le serveur le noeud de la machine de l utilisateur final qui r cup re et ventuellement agit sur les donn es localis es gr ce au serveur Ainsi il est n cessaire de le d composer en trois nouveaux sous syst mes afin de prendre en compte le d ploiement illustr en 3 5 2 3 6 1 Module User Conform ment la remarque ci dessus le sous syst me User est d compos en trois nouveaux sous syst mes diagramme 3 15 le module DB User d ploy sur le noeud serveur de donn es qui g re la base de donn es utilisateur et auquel se r f re les deux autres modules le module Owner d ploy sur le noeud supercalculateur qui permet par un r f rencement sur le module pr c dent de conna tre le propri taire du calcul le module EndUser d ploy sur le noeud machine terminale qui permet l identification de Putilisateur final par rapport la base de donn es du serveur 3 6 2 Module Data Comme pour le module pr c dent le module Data est d ploy sur l architecture du syst me sel
122. iscr tisation doivent avant tout connaitre le maillage domaine discret sur lequel vont tre calcul s les op rateurs et variables discrets Les services propos s par la classe Discr tisation sont de deux types des fonctions de parcours du maillage domaines de contr le degr s de libert des fonctions de construction des op rateurs l mentaires restreints 4 un domaine de contr le Il s agit de projeter localement un op rateur sur un domaine de contr le Cette contribution locale sera ensuite assembl au sein de l op rateur discret pour construire la matrice L int r t de d finir une classe g n rique pour la discr tisation r side dans la volont d assurer une ind pendance maximale des paquetages Il est donc essentiel que ces sp cialisations soient transparentes pour les paquetages du niveau discret Le polymorphisme permet alors de manipuler l objet r el par l interm diaire d une r f rence g n rique de type Discr tisation Prenons l exemple du calcul du laplacien Quand l op rateur discret veut cr er son quivalent alg brique il va cr er une matrice Cette matrice va tre assembl e en construisant des sous matrices l ment du maillage par l ment du maillage Ainsi pour les l ments finis la fonction de construction du laplacien l mentaire appliqu es tous les l ments domaines de contr le du maillage retournera la matrice Ar Vips VEG jee pour to
123. ise au point d une m thodologie de conception de code de calcul scientifique elle doit donc tre ind pendante de tout langage Une fois cette m thodologie mise au point il sera alors ais de l adapter en fonction des possibilit s des langages Nous pensons prendre en compte les langages C Fortran 95 et JAVA Pour l instrumentation et le couplage de codes nous ajouterons le langage C 10 Chapitre 2 Analyse et conception objet du probl me math matique Introduction La r solution num rique d un probl me de calcul scientifique constitu d un syst me d qua tions diff rentielles s effectue en plusieurs tapes qui permettent de passer du probl me continu aux syst mes alg briques inverser Ces diff rentes phases concernant chacune un domaine de comp tence particulier ont t rappel es dans le chapitre pr c dent la th orie des quations les m thodes de r solution la mise en uvre informatique Chacune de ces tapes correspond un cadre math matique particulier pour lequel est d fini un certain nombre d entit s espace op rateur Pour analyser ces diff rentes phases nous nous baserons sur l tude effectu e sur la discr tisation des quations diff rentielles para tre Le prin cipe expos consiste conceptualiser ces entit s math matiques dans un esprit d impl mentation informatique Ce cheminement nous conduira la notion d objets math matiques
124. ject Reference elle permet d identifier de localiser et de s adresser un objet CORBA Les clients ne peuvent pas cr er de r f rence d objet Une r f rence ne r f re qu un seul objet Elles peuvent d crire des objets impl ment s dans diff rents processus et sur diff rentes machines aussi bien que des objets impl ment s sur le client lui m me La r f rence sur l objet est le seul moyen pour le client d atteindre un objet cible Pour publier une r f rence le serveur a plusieurs solutions possibles Retourner une r f rence comme r sultat d une op ration Publier la r f rence dans un service commun le Naming Service par exemple Publier la r f rence en la convertissant en cha ne de caract res et en l crivant dans un fichier Transmettre la r f rence par un autre m canisme comme l envoyer par e mail ou la publier dans une page web Le moyen le plus commun est d acqu rir la r f rence sur l objet en r ponse l invocation d une op ration celle ci retournant une ou plusieurs r f rences sur des objets Les clients peuvent ainsi naviguer comme en suivant des liens hypertextes obtention d une r f rence permet par l invocation d une m thode sur cette r f rence d en obtenir une autre et ainsi de suite Lorsqu une r f rence est re ue par un client l ex cutable du client instancie un objet proxy dans l espace d adressage du client Lorsque
125. jet Op rateur Continu par agr gation simple car leurs existences ne sont pas assujetties celle de cet objet Pour d finir un op rateur discret il r sulte de l analyse pr c dente qu il faut conna tre la liste des domaines discret correspondants aux domaines continus sur lesquels est d fini l op rateur continu Enfin la discr tisation de l op rateur n cessite videmment de conna tre la m thode de discr tisation choisie 20 CHAPITRE 2 ANALYSE MATH MATIQUE 2 4 CONCEPTION D TAILL E Comme pour sa primitive continue les services propos s par la classe Op rateur Discret ne sont que d un seul ordre des services de lin arisation de l op rateur discret qui vont consister en la cr ation de l objet Matrice associ On retrouve les m mes associations entre classes que celles explicit es pr c demment association de type composition avec la classe Matrice association de type agr gation simple avec les classes des domaines discrets association de type agr gation simple avec la classe Discr tisation La construction d une matrice requiert la connaissance de la m thode de stockage adopter Les services rendus par cette classe correspondent essentiellement aux op rations effectu es sur les matrices lors des inversions de syst mes lin aires La fonction l mentaire est donc celle du produit matrice vecteur L association entre les classes Matrice et Stocka
126. k lt nb_coef_lin j nadr i k y i y i matr i k x j Le format CSR La m thode de stockage CSR Compress Sparse Row est une m thode plus compacte que la pr c dente ELL On stocke la suite les uns des autres dans des tableaux mono indic s et ligne par ligne les coefficients non nuls et les num ros de colonnes correspondantes A ces deux informations on ajoute un pointeur sur chaque d but de ligne Le produit matrice vecteur s crit en utilisant les noms des attributs des classes concern es CSR et CSR_Array 75 4 3 MISE EN UVRE CHAPITRE 4 APPLICATION for i 1 i i lt nb_lins 1 y i 0 0 for k nrow i k k lt nrow i 1 j ncol k y i y i matr k x j 4 3 10 Construction informatique du probl me elliptique Nous venons de d crire les paquetages constituants la librairie Nous allons maintenant pr sen ter les instructions informatiques permettant la r solution du probl me elliptique que nous avons choisi comme exemple d application Le programme principal se d roule en plusieurs tapes Construction de la g om trie du probl me r soudre Construction des op rateurs du probl me Construction des variables donn es et solution intervenant dans les quations Choix de la m thode de discr tisation et discr tisation du probl me continu Choix de la m thode de stockage par op rateur et lin arisation du probl me discret
127. l interface graphique du projet Cependant il existe un certain nombre de solutions pour r soudre ce probl me Nous avons choisi d utiliser l API jfreechart pour la visualisation en java des courbes 2D D autre part des outils de visualisation de type gnuplot ou AVS peuvent tre connect s l interface graphique voir ce sujet les it rations du processus de conception en 3 9 Impl mentation de PORB Le choix de PORB doit outre les contraintes voqu es ci dessus r pondre l exigence d un mapping la fois Java et C Cela peut tre r alis par l utilisation de deux ORB la norme im posant une compatibilit entre ORB ou par un ORB proposant les deux mapping Cette solution la plus simple est celle qui est pour l instant retenue Elle d pend de l volution des impl menta tions tant au niveau des fonctionnalit s disponibles qu au niveau de la politique de d ploiement des construteurs L impl mentation retenue est pour le moment celle de Orbacus 99 3 8 IMPL MENTATION ET TESTS CHAPITRE 3 ENVIRONNEMENT 3 8 2 Mod le d impl mentation diagramme de composants Les diagrammes de composants pr sent s ci dessous permettent de d crire l architecture phy sique et statique de l application en terme de modules c est dire partir de fichiers sources librairies ex cutables Les d pendances entre composants aident ainsi identifier les contraintes de compilation et mette
128. l op rateur de rigidit Ces m thodes sont compl tement sp cifi es dans la documentation interne On utilisera une classe de type factory pour la s lection de la m thode de discr tisation Les sous paragraphes suivants donnent l impl mentation des m thodes virtuelles pures pr c dentes pour chacune des techniques de discr tisation consid r es ici 4 3 7 El ments finis La mise en uvre propos e ici est tr s proche de celle utilis e dans qui est une analyse objet de la programmation pour des probl mes discr tis s par l ments finis adapt s au langage Fortran 90 On utilise des m thodes identiques pour la construction des fonctions de bases et des m thodes d int gration num rique Les l ments finis PO P1 P1 non conforme P2 Q0 Q1 et Q2 sont disponibles en dimension 2 On dispose des formules d int gration de Gauss de degr 1 2 3 ainsi que de formules dont les points d int gration sont les degr s de libert des l ments finis Ces derni res formules d int gration sont bien entendu moins pr cises que les formules de Gauss mais elles permettent de nombreuses v rifications par exemple les sommets pour le Laplacien donne le m me stencil que les diff rences finis d ordre 2 1 1 4 1 1 Structure de la classe Finite_Elements_Pk La classe Finite_Elements_Pk a t con ue pour pouvoir utiliser tous les l ments finis de Lagrange quelque soit la dimension d espace On d finit d abord
129. l ouverture de la fen tre de l ex cution correspondante Celle ci est constitu e de cinq parties distinctes la partie informations g n rales qui recense les donn es temps r el machine sur laquelle tourne le calcul temps d ex cution tat du calcul la partie contr le qui permet de contr ler l ex cution distance la partie flux de donn es qui permet d avoir acc s chacun des flux d finis dans le code la partie documentation qui permet de visualiser la documentation du code lorsque celle ci a t structur e comme il est expliqu dans la partie Documentation du rapport la partie suppression du serveur qui n est accessible que lorsque l ex cution est termin e Cette action permet de supprimer tous les flux distribu s du serveur lorsque l ex cution a t cr e avec l option PERSISTENT L image 5 3 pr sente un exemple de fen tre d ex cution Session Open Windows Update E Calcul TST OPERATOR Edd CS louvet connect Ed Louvet Violaine Hostname clouange F peu Temps CPU 10 louvet Etat du calcul Running Contr le du calcul Changer le mot de passe Stop Pause Restart ee A Ee achine Propri taire Permissions Cait Violaine Louvet 744 Violaine Louvet 744 FlowTrace NDesc Residu Solution Documentation des sources Documentation Su
130. le A carr e d ordre 5 qui ne d pend pas du point dans le cas expos ici des maillages r guliers telle que pour tout l ment u de W1 Phu co ncide avec u aux points du maillage L op rateur Phu s exprime sous la forme Vu W1 Vi 0 N x 0 N Vx Eux Pp u x A Y Pi a o Y est le vecteur des valeurs de u sur la maille et les quatres mailles voisines Le rel vement Pu d un l ment un de Wi est quant lui la fonction de W la plus proche ua au sens de la norme de W et coincidant avec up aux points du maillage 2 2 Analyse L tude th orique pr c dente nous a permis de d finir un certain nombre d entit s math ma tiques Il s agit maintenant de les faire vivre dans un ensemble coh rent afin d aboutir un mod le d analyse complet Cette phase d analyse doit permettre de d crire pr cisemment les l ments qui constitueront la biblioth que sans indiquer comment les choses seront impl ment es Il faut dans un premier temps identifier les objets m tiers issus du cadre th orique pr c dent Dans V criture du probl me discret propos e dans la section pr c dente nous avons s par Vop rateur discr tiser de la discr tisation Ainsi P est d fini dans le niveau math matique tandis que les op rateurs P Pz Q et Q sont d finis dans le niveau discr tisation Cette remarque nous permet de caract riser deux objets math matiques particuliers Operat
131. leme_algebrique Probleme_Algebrique discretisation Discretisation init_probleme_algebrique calcule Effectue le calcul Appel de la m thode calcule du syst me lin aire Probleme_Algebrique operateurs liste lt Matrice gt donnees liste lt Vecteur gt solutions liste lt Vecteur gt stockage Stockage R alise 1 inversion du syst me Retourne la solution calcule ses Fic 2 5 Diagramme de classes du paquetage Probl me une liste de domaines continues sur lesquels est d fini l op rateur Celui ci peut en effet tre d fini sur l int rieur d un domaine math matique et sur le bord de ce m me domaine math matique Or le traitement de ces deux cas est susceptible de diff rer ce qui conduit instancier deux domaines continus diff rents pour traiter informatiquement le probl me Les services propos es par cette classe ne sont que d une seule sorte des services de discr tisation de l op rateur continu qui vont consister en la cr ation de l objet Op rateur Discret associ Le cycle de vie des objets du paquetage Op rateur est similaire celui pr sent pour le paquetage Probl me Ainsi l existence de l objet Op rateur Discret n a de r alit que pendant la dur e de vie de l objet Op rateur Continu qui l a cr d ou une association de type composition entre ces classes Inversement les domaines continus sont li s l ob
132. les objets miroirs des fabriques d objets distribu s L appel de cette fonction doit id alement tre la premi re instruction du programme De fa on analogue le programme principal doit se terminer par une m thode de finalisation end galement d clar e dans l ent te Global h et qui contr le entre autre les sauvegardes et ou destructions des donn es sur le serveur tinclude Global h int main int argc char argv init argc argv TST OPERATOR PERSISTENT 7 4 4 end return 0 La fonction end ne comporte pas d argument La fonction init prend au minimum trois arguments au maximum sept arguments les deux premiers arguments sont ceux pass s dans l appel de la routine principale main Le troisi me argument de type string correspond au nom de l ex cution qui appara tra lors de l exploitation graphique Ce nom doit tre unique sur le serveur Si le nom choisit existe d j le programme rajoute un 0 au nom jusqu obtenir un nom non existant sur le serveur et continue l ex cution Le quatri me argument optionel de type int correspond au temps de vie sur le serveur de l ex cution et des donn es qui lui sont associ es Cette argument peut prendre deux valeurs 1 TRANSIENT l ex cution et les donn es sont d truites du serveur la fin du process C est la valeur par d faut 2 PERSISTENT l ex cution et les donn es s
133. mpile Archive e 1 e 2 L__ lt lt Library gt gt __ lt lt Class gt gt sql_cpp a classes Java Ld sor Sous syst me serveur de donn es utilisateurs FIG 3 32 Diagramme de composants relatif la base de donn es utilisateurs R pertoire CLIENT CPP et CLIENT JAVA __ lt lt Source gt gt Sous syst me Classes instrumentales o pr compile LA lt lt Library gt gt L__ lt lt class gt gt client_cpp a Classes Java L client Sous syst me classes instrumentales Fic 3 33 Diagramme de composants relatif aux programmes clients 3 8 IMPL MENTATION ET TESTS CHAPITRE 3 ENVIRONNEMENT lt lt Library gt gt lt lt Library gt gt j LD lt lt Lib gt gt i L__ lt lt Library gt gt ibrary jcommon jar OBEvent jar libJTC a libCosEvent a L l lt lt Library gt gt L__ lt lt Library gt gt libCosNaming a lt lt Library gt gt L___ lt lt Library gt gt jfreechart jar Librairies ext rieures C R NE z Librairies ext rieures Java Fic 3 34 Diagramme de composants relatif aux librairies ext rieures lt lt Library gt gt librairies ext rieures __ lt lt Source gt gt Sous syst me Serveur de donn es Classes serveur C lt lt Library gt gt IDL CPP corba_cpp a lt lt Library gt gt SOL CPP sql_cpp a lt lt Library gt gt Librairies ext rieures _ lt lt Source gt gt Cod
134. name string Processinfos _lifeSpan Lar one _realtimecpu double ProcessInfos tring ROstream gt control string Calcul execution Execution _ypExecutions Calcul Singleton _name string YPCalculs _vstreams list lt VStream gt E cAd sen Endiser YPExecutions taccess bool control ControlAction toTable Coll void ection Fic 3 17 Diagramme U M L du sous syst me Execution Singleton ViewManagement _globalView GlobalView _list _db IDBUser identify AccessData User _freg int _list list lt InternalFrame gt _updateThread UpdateThread addInternalFrame InternalFrame void Singleton Frame GlobalView list lt InternalView gt run void update void YPCalculsView Classe Frame interne g n rique pour les vues n cessitant une mise jour r guli re Update All Now Update Frequenc Windows t Session Fic 3 18 Diagramme U M L des classes g n rales de vue et de gestion 46 CHAPITRE 3 ENVIRONNEMENT 3 6 CONCEPTION PR LIMINAIRE InternalFrame AccessDataView _login TextField _password PasswordField _validation Button _ model AccessData InternalView EndUserView _model EndUser _name Label _group Label _login
135. ngages C C Java SmallTalk Ada COBOL La transparence des invocations les requ tes aux objets semblent toujours tre locales le bus CORBA se chargeant de les acheminer en utilisant le canal de communication le plus appropri L invocation statique et dynamique ces deux m canismes compl mentaires permettent de soumettre les requ tes aux objets En statique les invocations sont contr l es la compila tion En dynamique les invocations doivent tre contr l es l ex cution Un syst me auto descriptif les interfaces des objets sont connues du bus et sont aussi accessibles par les programmes par l interm diaire du r f rentiel des interfaces L activation automatique et transparente des objets les objets sont en m moire uniquement s ils sont utilis s par des applications clientes L interop rabilit entre bus un protocole g n rique de transport des requ tes GIOP a t d fini permettant l interconnexion de bus CORBA provenant de fournisseurs distincts une de ses instanciations est IIOP fonctionnant au dessus de TCP IP Les clients manipulent les objets en envoyant des messages c est dire en invoquant une op ration sur l objet Pour envoyer un message un objet le client doit conna tre une r f rence sur cet objet Le processus d invocation des requ tes est illustr par la figure C 2 Application Cliente Application Serveur
136. ns d volutabilit d efficacit de modularit de r utilisabilit d optimisation et de structuration de la programmation la r utilisation des biblioth ques et des logiciels existants la facilit du travail collaboratif entre sp cialistes de comp tences diff rentes la capitalisation des acquis De plus nous avons d j signal que l usage de la conception objet tait indispensable du point de vue de l enseignement 1 2 Les objectifs et leurs contraintes Notre r flexion actuelle porte sur un ensemble d objectifs assujettis un certain nombre de contraintes pour obtenir une m thodologie de travail et donc de programmation Comme nous l avons d j signal les domaines de comp tences de notre quipe vont de l analyse math matique du probl me l impl mentation sur un ensemble de plateformes donn es en passant par une recherche sur l algorithmique de r solution Ces trois points de vue sont ind pendants et ne sont pas d velopp s par les m mes personnes Ceci implique de pr voir des tapes interm diaires ind pendantes afin de profiter des comp tences de chacun dans son domaine pour le d veloppement de chacune ces tapes Par ailleurs nous voulons une certaine capitalisation du savoir faire Il est en effet indispensable de pouvoir r utiliser un code de calcul alors que le d velopeur n est pas disponible ou d utiliser une application ancienne pour en construire une nouvelle
137. nt en vidence la r utilisation de ces composants Le diagramme 3 31 montre la structure physique des modules concernant les entit s distribu es IN R pertoire IDL CPP et IDL JAVA I I I I I O lt lt Source gt gt Sous syst me Lj Serveur de donn es Classes distribu es I I 1 compile jidl pr compile compile idl fompile archive 1 1 Ld lt lt Library gt gt __ lt lt class gt gt corba_cpp a Classes Java Ld cotba Sous syst me serveur de donn es objets distribu s FIG 3 31 Diagramme de composants des entit s relatives aux objets distribu s Le diagramme 3 32 illustre l architecture des fichiers de la base de donn es des utilisateurs Le diagramme 3 33 concerne les fichiers utilis s pour les programmes clients Les sch mas 3 34 indiquent les librairies ext rieures n cessairent au bon fonctionnement du logiciel Le diagramme 3 35 illustre les d pendances pour la g n ration de l ex cutable de la partie serveur Il utilise les structures qui ont t pr sent es ci dessus Le sch ma 3 36 concerne les d pendances pour les codes de calcul clients Enfin le diagramme 3 37 pr sente les modules n cessaires l ex cution de l interface graphique 56 CHAPITRE 3 ENVIRONNEMENT 3 8 IMPL MENTATION ET TESTS IN R pertoire SQL CPP et SOL JAVA O lt lt Source gt gt Sous syst me ___ Serveur de donn es utilisateurs e k y co
138. nte server ORBInitRef NameService corbaloc iiop localhost 1977 NameService ORBInitRef EventChannelFactory corbaloc iiop localhost 1978 DefaultEventChannelFactory L option ORBInitRef permet d indiquer les r f rences initiales du service de nom qui est en attente sur la machine locale et le port 1977 de la fabrique des canaux d v nements qui est en attente sur la machine locale et le port 1978 5 2 Instrumentation d un code Pour d crire de fa on pratique l instrumentation d un code de calcul nous allons nous baser sur un code C r alis partir des classes de la bibiloth que math matique et num rique du logiciel GTOOCS La mise en oeuvre pour un code impl ment dans un autre langage se fait de mani re analogue 5 2 1 Langages disponibles La librairie des classes d instrumentation de codes utilise les interfaces IDL des objets commu niquants Elle est donc disponible pour les langages g n r s par les compilateurs idl c est dire essentiellement C Java Les codes de calculs tant souvent d velopp s en Fortran la biblioth que des classes d instrumen tation est aussi disponible sous forme encapsul en Fortran 77 Fortran 90 Le choix de ces langages a t fait pour trois raisons principales La prise en compte de l existant constitu essentiellement de codes en fortran 77 ou 90 La volont de d velopper les nouveaux codes l aide d
139. odes instrument s L ensemble des ex cutables et des librairies utilis s dans cette partie a t d crit et localis physiquement dans la partie pr c dente par un diagramme de composants 5 1 D marrage du serveur La mise en route du serveur doit se faire en deux temps il faut d abord d marrer les services CORBA n cessaires au bon fonctionnement du logiciel puis mettre le serveur en attente des requ tes des clients 5 1 1 Services CORBA Les services CORBA indispensables au lancement du serveur sont le service de nommage le service d v nement Dans le cas de l utilisation de l impl mentation CORBA d Orbacus le d marrage de ces services se fait de la fa on suivante nameserv OAport 1977 OAhost localhost amp eventserv OAport 1978 OAhost localhost amp L option OAport d signe le port de la machine sur lequel est accessible le service option OAhost d signe la machine sur lequel le service est d marr Ainsi dans exemple pr c dent le service de nommage est d marr sur la machine locale en attente sur le port 1977 et le service d v nement est d marr sur la machine locale en attente sur le port 1978 79 5 2 INSTRUMENTATION CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 1 2 Serveur Le d marrage du serveur se fait en lan ant l ex cutable id alement en batch avec r cup ration des sorties dans un fichier de log L ex cution du serveur se fait sous la forme suiva
140. on C est un langage de d finition d interface orient objet Il d finit les types des objets en sp cifiant leurs interfaces Une interface consiste en un jeu d op rations et de param tres pour ces op rations IDL est le moyen par lequel une impl mentation d un objet indique ses clients potentiels quelles op rations sont disponibles et comment elles doivent tre invoqu es IDL a t con u pour assurer la correspondance avec des langages de programmation Les stubs client et les skeletons serveur automatisent les actions suivantes en conjonction avec l ORB codage d codage des param tres g n ration des impl mentations des classes d interfaces enregistrement et activation des objets localisation et liens des objets Objet CORBA entit virtuelle capable d tre localis e par un orb et recevant des requ tes des clients 118 ANNEXE C CORBA M CANISMES DE FONCTIONNEMENT CONCEPTS ET NOTIONS Objet cible Target Object dans le contexte d une requ te CORBA c est Pobjet cible de cette requ te Client entit qui invoque une requ te sur un objet CORBA Serveur application dans laquelle existent un ou plusieurs objets CORBA Requ te Request invocation d une op ration sur un objet CORBA par un client La requ te va du client l objet cible via le serveur et la r ponse est aussi renvoy de l objet vers le client via le serveur R f rence d objet Ob
141. on 2 1 Comme nous allons le voir en d tail dans les paragraphes suivants chaque couche correspond donc la r solution du probl me un niveau donn Chaque niveau repose sur un objet ma th matique g n ral de nom g n rique probl me manipulant les autres entit s du m me niveau C est pour cette raison qu ils sont repr sent s sous forme d objet contr le dans le diagramme de collaboration Comme le diagramme 2 1 le montre chaque tape de la r solution conduit la construction du probl me de l tape suivante Le diagramme de s quence 2 2 permet de rendre compte de la succession des v nements concernant les objets math matiques de type probl me au cours du calcul Probl me Formel Probl me discret Probl me Alg brique Discr tisation l Assemblage Inversion Retour de la solution Retour de la solution FIG 2 2 Diagramme de s quence global repr sentant la r solution d un probl me math matique Tous ces l ments nous conduisent l laboration d un mod le d analyse qui sous la forme 14 2 2 ANALYSE CHAPITRE 2 ANALYSE MATHEMATIQUE 181981Q aurewog O 8StT3910sfp s L N P A O estiegur s T 8191981 SIQRUEA O 8ST3910Sfp es 6 aoe anbuqebly awajqold O o estaesuti es IT pnosdx 9T estaesur es ZI udtantos ey suuop anuyuoo feurewog SNUUO AJQLUBA O 18191 Inaje1ado O
142. on des requ tes aux objets leur implantation Le Naming Service Le service de nommage fait partie des services de recherches propos s par le protocole CORBA Il permet la recherche des objets en fonction de noms symboliques leur ayant t associ s Le serveur de nom est ex cut en t che de fond sur le serveur La r f rence du service est obtenue par l appel d une m thode d initialisation sur le nom particulier NameService Les noms sont constitu s d une s quence ordonn e de composants structur s par un graphe de contexte de nommage Les contextes de noms utilis s dans le cadre du projet GTOOCS sont explicit s un peu plus loin lors de la description des objets qui y sont r f renc s L Event Service Par d faut la coop ration des objets CORBA est r alis selon un mode de communication client serveur synchrone Toutefois il existe un ensemble de services assurant des communications asynchrones dont le service d v nement Il permet aux objets de produire des v nements asynchrones destination d objets consommateurs travers des canaux d v nements Le service d v nements CORBA est comme le service de nommage ex cut en t che de fond sur la machine serveur Les envois et r ceptions d v nements se font travers des canaux d v nements Ceux ci sont eux m mes cr s par le biais d une fabrique Le diagramme de classe 3 24 illustre cette nouvelle classe du serveur de donn es Objets
143. on les trois nouveaux sous syst mes suivants diagramme 3 16 le module Stream sur le noeud serveur de donn es qui englobe les objets de type flux communiquants et auxquel se r f rent les objets des deux autres sous syst mes le module RStream qui correspond aux flux distants Remote Stream d ploy sur le noeud supercalculateur dont les objets sont la base de l instrumentation des codes le module VStream Visualize Stream qui d finit les classes pour la visualisation des flux sur la machine de l utilisateur final 3 6 3 Module Execution Le dernier module du paquetage AllDatas est galement d ploy sur architecture techinque du logiciel en trois sous modules diagramme 3 17 43 3 6 CONCEPTION PR LIMINAIRE CHAPITRE 3 ENVIRONNEMENT IDBUser UserManagement x A _db UserDataBase identify AccessData User D changePassword User string void getUser string User createUser string User getUser AccessData User updatePasswd User string void getUser string User updatePassword User string void string changePassword string void password string Fic 3 15 Diagramme U M L du sous syst me User le module Execution qui r f rence les ex cutions sur le serveur de donn es le module Process qui correspond aux ex cutions des codes instrument s sur le supercalcu lateur le module Calcul sur la machine de Putilis
144. ons discr tes des entit es d finies dans la classe Problem la d finition de la discr tisation du domaine de calcul la liste des op rateurs discrets la liste des variables discr tes On y trouve galement les m thodes de construction et de r solution du probl me discret qui g n reront les entit s du niveau suivant par l interm diaire de l objet Algebric_Problem Dans cet exemple l algorithmique mise en place ce niveau est tr s simple puiqu elle ne consiste qu en la discr tisation spatiale d une quation lin aire Discret_Problem name string operators map lt string DiscreteOperator gt datas map lt string DiscreteVariable gt solutions map lt string DiscreteVariable gt domains list lt DiscreteDomain gt algebric Algebric_Problem Discret_Problem string string addOperator string DiscreteOperator void addDatas string DiscreteVariable void addSolution string DiscreteVariable void addDomain DiscreteDomain void init_la map lt string string gt Algebric_Problem solve string int double void evalu void FIG 4 2 Classe Discret_ Problem 68 CHAPITRE 4 APPLICATION 4 3 MISE EN UVRE La classe Algebric_Problem Le dernier niveau du paquetage Problem est celui des entit s alg briques On y trouve les matrices et les vecteurs ainsi que les m thodes qui les concernent comme les m thodes de r solution de syst mes lin aires
145. ont conserv es sur le serveur et restent accessibles apr s la fin du process Les arguments 5 6 et 7 de type int sont les permissions associ es cette ex cution corres pondantes respectivement au propri taire au groupe du propri taire et au reste du monde c est dire de la forme des permissions UNIX avec des valeurs de m me signification 1 permission de 4 permission de lecture qui autorise l acc s l ex cution et aux donn es associ es mais pas au contr le de l ex cution 2 permission de 2 permission d criture permettant la modification des donn es non impl ment dans cette version 3 permission de 1 permission d ex cution autorisant le contr le de l ex cution Dans le cadre de l exemple l ex cution sera accessible en lecture par tous propri taire groupe et reste du monde et en criture et ex cution par le propri taire uniquement qui sera seul autoris contr ler cette ex cution C est galement le comportement par d faut 81 5 2 INSTRUMENTATION CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 2 4 Sortie standart Cout La biblioth que d instrumentation offre la possibilit de distribuer la sortie standart par l uti lisation de la variable globale Cout de type StdCout et d clar dans le fichier d ent te Global h Il est donc possible de remplacer l ou on le souhaite la variable standart cout par cette nouvelle variable Cout qui chaque ap
146. op rateur pour la classe StdCout comme le d taille exemple suivant concernant la hi rarchie des classes de stockage Fichier Storage h include Cout h class Storage Surcharge de l operateur de redirection lt lt friend ostream amp operator lt lt ostream amp const Storaged Surcharge de l operateur de redirection lt lt friend StdCout amp operator lt lt StdCout amp const Storage amp M thode d impression impl menter dans les classes d riv es virtual ostream amp print ostream amp const 0 M thode d impression impl menter dans les classes d riv es virtual StdCout amp print StdCout amp const 0 Fichier Storage cpp _ Surcharge de l operateur de redirection lt lt ostream amp operator lt lt ostream amp os const Storage amp sto return sto print os 11 _ Surcharge de l operateur de redirection lt lt StdCout amp operator lt lt StdCout amp os const Storage amp sto return sto print os Fichier FULL h 83 5 2 INSTRUMENTATION CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL class FULL public Storage protected Print Method ostream amp print ostream amp const StdCout amp print StdCout amp const 3 Fichier FULL cpp Print Me
147. ortement bien entendu du probl me continu Ainsi afin d illustrer ceci nous montrons ici deux exemples d op rateurs les l ments finis P1 et les diff rences finies En l ments finis l espace W sera celui engendr par les fonctions de base i 1 v o N est le nombre de sommets de la triangulation on notera pour la suite que les sommets num rot s entre 0 et Ning sont l int rieur du maillage et les autres sur le bord du maillage Dans notre exemple les fonctions de base sont de type P1 tandis que l espace Wa est celui des fonctions constantes par morceaux sur les cellules du maillage Ainsi les op rateurs P et P sont d finis comme suit Vu E Wi P u M1 8 u Vu Win P un Uh o d signe le produit scalaire dans L 1 pw et M 9 6 En ce qui concerne la m thode des diff rences finies on adopte ici une technique de collocation qui est pr sent e par soucis de l g ret de l criture sur le maillage r gulier du carr 0 1 x 0 1 dont les noeuds sont les points x p h l h xi 1 i 2 pour i p 1 et p et l variant entre 0 et N h 1 N de plus on pose w p 1 2 h p 1 2 h x 1 1 2 h 1 1 2 h N 0 1 x 0 1 Consid rons la notation suivante Vi 0 N x 0 N P x 1 2 1 2 2 2 1 tin 2 2 2 1 Alors on montre qu il existe une matrice inversib
148. ource en C 2 me partie106 Mod lisation UML d un paquetage 114 Mod lisation UML d une classe 115 Mod lisation UML d une association entre classes 115 Mod lisation UML d une agr gation et d une composition 116 Mod lisation UML d une relation de g n ralisation 116 Constitution de POMA 118 Processus d invocation des requ tes 121 viii Avertissement Ce document est une premi re version du projet MOOCS M thodologie Orient e Objet pour le Calcul Scientifique Il est naturellement destin voluer Des mises jour seront r guli rement disponibles sur le site http www math u psud fr gtoocs Introduction Ce projet a t initi au sein d un groupe de travail du Laboratoire de Math matique de l Universit Paris Sud d Orsay Groupe de Travail de programmation Orient Objet pour le Calcul Scientifique GTOOCS cr en 1999 2000 Les r flexions men es portaient avant tout sur l tude de la conception objet appliqu e au domaine particulier du calcul scientifique A cette occasion nous remercions pour leur collaboration Fr d ric Pascal qui avec l un des auteur a crit une premi re r flexion sur la programmation objet appliqu e au calcul scienti fique pour les l ments finis en Fortran 90 Marc Tajchman et Maxime
149. par l ments finis Il a t con u par F Hecht O Pironneau Laboratoire Jacques Louis Lions Universit Pierre et Marie Curie Paris et K Ohtsuka Hiroshima Kokusai Gakuin University Japan et est crit en C Il constitue en r alit un m ta langage Il comprend un g n rateur de maillage avec des possibilit s d adaptation La version 1 29 permet de travailler avec les l ments P1 P1 non conforme P2 et les l ments de Raviart Thomas A 2 3 M lina http perso univ rennes1 fr daniel martin melina www homepage html M lina est une biblioth que de proc dures pour la r solution de probl mes aux limites gouver n s par des quations aux d riv es partielles par la m thode des l ments finis en dimension 2 ou 3 Il a t d velopp par O Debayer de 1989 1996 et par D Martin depuis 1989 Ce code est essentiellement un code de recherche et fournit un ensemble d outils ais ment manipulables pour crire rapidement des applications pour le traitement num rique de probl mes nouveaux extrait du guide de l utilisateur M lina est crit en Fortran 77 Il est con u autour d utilitaires de haut niveau macros op rations A 2 4 Overture http www llnl gov CASC Overture D velopp au Lawrence Livermore National Laboratory Overture est un ensemble de classes crites en C pour la repr sentation de grilles et propose un ensemble de m thodes sur les grilles Overture utilise intensivemen
150. parameters levell d crit les d clarations et d finitions des param tres pass s en argument d une routine 98 CHAPITRE 6 DOCUMENTATION 6 3 UTILISATION DU PROGRAMME variables levell donne les d clarations et d finitions des variables locales purpose levell permet la description de l entit associ e name calling_ sequence levell d crit la s quence d appel de la routine en relation avec parameters called levell indique les fonctions appel es par la routine langage F77 et C o il n y a pas d include levell levell correspond la documentation de niveau 1 par d faut Mevel2 level2 correspond la documentation de niveau 2 skip levell indique que l on passe cette partie du programme Pour reprendre la g n ration de documentation apr s un skip on utilise les mots cl s d finis ci dessus et on se trouve en level 1 par d faut ou on utilise d abord level2 pour indiquer une documentation de niveau 2 6 3 Utilisation du programme 6 3 1 Mode en ligne Le programme fonctionne selon deux types d arguments pass s sur la ligne de commande On passe en arguments le nom court du fichier sans extension le langage et le niveau optionnel makedoc fichier f90 1 On passe en arguments le nom complet du fichier makedoc fichier f90 Les mots cl s d signant les langages sont les suivants f90 pour le fortran 90 perl ou pl pour le perl cpp ou cc pour le C
151. pel de l op rateur r alise deux actions criture dans un objet distribu criture sur la sortie standart Ainsi l action locale de cette variable est transparente par rapport l utilisation de la variable classique cout La modification du programme principal de notre exemple est illustr dans l extrait suivant des sources include Domain h include Finite_Elements_Pk h include Global h int main int argc char argv init argc argv TST OPERATOR PERSISTENT 7 4 4 string option Cout lt lt TST OPERATOR Read a domain lt lt endl Domain geom TRIA Domain test 2d mesh MESH Cout lt lt geom lt lt endl Cout lt lt TST OPERATOR enter an OPTION while cin gt gt option Cout lt lt endl if option EXIT break else if option TEST DiscreteDomain dgeom geom get_ddom string fems_id P1 string intg_id 2D TRIA G 3 Finite_Elements_Pk FEMP1 dgeom intg_id fems_id double Dt double Re gt 1 0 1 0 Cout lt lt TST OPERATOR Dt lt lt Dt lt lt endl Cout lt lt Re lt lt Re lt lt endl 82 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 2 INSTRUMENTATION Il faut noter que l utilisation de cette variable pour des objets pour lesquels l op rateur a t red fini n cessite de la m me mani re la red finition de cette
152. perateur_h domaines liste lt Domaine_h gt discretisation Discretisation matrice Matrice init_matrice A A Operateur_Lineaire_h Operateur_Non_Lineaire_h produit_matrice_vecteur Vecteur Vecteur FIG 2 6 Diagramme de classes du paquetage Op rateur 21 2 4 CONCEPTION D TAILL E CHAPITRE 2 ANALYSE MATH MATIQUE 2 4 3 Conception d taill e du paquetage Variable Le paquetage Variable comprend les classes Variable Continue Variable Discr te et Vecteur Ce paquetage est en plus simple construit sur le mod le du paquetage Op rateur Une variable continue est d finie comme l op rateur continu sur un ensemble de domaines continus Les services rendus par la classe Variable Continue se r sument des services de discr tisation de la variable qui vont consister en la cr ation de l objet Variable Discr te associ L association entre les classes Variable Continue et Variable Discr te est de type com position tandis que celle existant entre Variable Continue et Domaine Continu est de type agr gation simple La d finition d une variable discr te n cessite la connaissance des domaines discrets approchant les domaines continus sur lesquels est d finie la variable continue correspondante La cr ation d une instance de Variable Discr te est galement bas sur le choix de la m thode de discr tisation Les services propos s par la classe Variable Discr
153. plication de l l ment de r f rence l l ment courant Le diagramme UML des diff rentes classes de la hi rarchie Method relatives aux l ments finis ainsi que les classes utilis es par cette hi rachie est pr sent en 4 5 Comment ajouter un domaine de r f rence Les domaines de contr le de r f rence Ref_Elmt sont identifi s par une chaine de caract res qui est donn e au constructeur On dispose des domaines suivants en dimension 1 SEGM 1D un segment en dimension 2 TRIA 2D un triangle RECT 2D un carr en dimension 3 TETR 3D un t tra dre CUBE 3D un cube PRIS 3D un prisme base triangulaire Pour chaque type on pr cise la dimension d espace le nombre de sommets et leurs coordonn es Des m thodes publiques donnent acc s ces informations dims nb_soms et som_coo respective ment Pour ajouter un domaine de r f rence il suffit de modifier le constructeur de la classe Ref _Elmt en ins rant ce nouveau type Comment ajouter une m thode d int gration Une m thode d int gration num rique est construite l aide d un domaine de r f rence et d une cha ne de caract res sp cifiant le type d int gration souhait Les m thodes de la classe Num_Intg permettent de conna tre le nombre de points d int gration numb les coordonn es de ceux ci coor et les coefficients d int gration coef Les types d int gration actuellement disponibles sont sur un segment sur un triangle 2D
154. possible ainsi de d finir des tableaux multidimensionnels Par contre la taille de ces tableaux est fixe Un grand nombre d API Java permettent galement de manipuler des collections d objets Array Vector Il est alors n cessaire de bien cibler le choix de la collection pour assurer des performances optimales 110 ANNEXE A ETAT DE L ART A 5 LES MAILLEURS A 43 TNT C est l ensemble des classes de tableaux utilis es par LAPACK voir A 3 Il propose sous forme de template des tableaux jusqu trois indices et fait la diff rences entre les tableaux la mode C et ceux la mode Fortan Il offre aussi des possibilit s d op rations sur les tableaux AAA A P Cet ensemble est plus ancien que TNT Il est con u sans la notion de template mais poss de une version s quentielle A et une version parall le P Il a t crit Livermore et est fortement utilis dans Overture La notion de tableau qui est propos e est tr s proche de celle de Fortran 90 95 On y retrouve des sections de tableau des tableaux jusqu l ordre 4 et des op rations sur ceux ci A 5 Les mailleurs On distingue les grilles propres aux discr tisations par diff rences finies les maillages struc tur s et non structur s pour les l ments finis et les maillages duaux des volumes finis Il est relativement facile de g n rer des grilles et des maillages r guliers Pour les grilles il faut quand m me signaler le probl me
155. ppression d finitive Supprimer du serveur FIG 5 3 Fen tre donnant les informations d un calcul particulier accessible par l interface gra phique 5 3 7 Fen tre d un flux particulier L action sur le bouton d un flux particulier ouvre la fen tre correspondante ce flux Cette fen tre comporte un champ rappelant le format du flux ainsi qu une barre de menu comprenant les menus suivants menu Texte il comprend les items permettant une visualisation textuelle des donn es menu Graphiques il comprend les items permettant une visualisation graphique des donn es menu Statistiques non impl ment Selon le format du flux certains items ne sont pas accessibles L image 5 4 suivante pr sente plusieurs fen tres particuli res de flux Une fen tre unique est ouverte pour chaque flux 91 5 3 EXPLOITATION GRAPHIQUE CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL G TOOCS Exploitation de codes de calculs E Calcul TST OPERATO Hostname clouange Temps CPU 10 0 Etat du calcul Running Contr le du calcul Louvet Violaine per Texte Graphiques Statistiques Es 1 intl double Non formatt Propri taire Violaine Louvet Violaine Louvet FlowTrace NDesc Solution Documentation des sources Documentation Suppression d finitive Supprimer du serv
156. pres avec des contraintes sp cifiques diff rentes des notres voir l annexe A 1 4 Choix de la m thodologie Notre environnement de travail nos besoins et les contraintes que nous devons prendre en compte nous ont conduits laborer un cahier de charges pr cis partir de ces donn es nous avons cherch d abord valuer les logiciels et biblioth ques existants Certains de ces d veloppements sont incontournables mais aucune approche globale ne semble r pondre tous les points de notre cahier des charges Il nous faut donc envisager la mise au point d une m thodologie de travail et de d veloppements correspondante plus sp cifiquement nos attentes Comme nous l avons d j signal nous devons avoir une conception objet pour notre mod le de code de calcul scientifique Gr ce ce point de vue nous disposons de l ensemble des formalismes objet comme le processus unifi unified process les patrons architecturaux design patterns D autre part nous avons vu la n cessit de r utiliser certaines des biblioth ques existantes Cette contrainte suppl mentaire va conduire certains choix techniques ainsi il faudra par exemple assurer la compatibilit de la notion de tableau avec l ensemble LAPACK interfacer certaines es librairies graphiques Nous n avons pas encore vraiment parl de langages de programmation c est bien entendu volontaire L essentiel de notre tude est la m
157. processus ne peuvent tre lanc s que par l interm diaire d un programme sp cial mpirun PVM comme MPI est crit en C des interfaces ont t d velopp es pour Fortran 77 PVM et MPI Fortran 9x et C MPI pour PVM nous avons d velopp notre propre interface PVM 3 Chronologiquement PVM fut la premi re biblioth que de passages de messages Dans sa pre mi re version elle ne proposait que des sous programmes de gestions de buffer d envoi et de r ception Puis les versions suivantes ont offert la notion de groupes et des fonctions plus proches des besoins des utilisateurs PVM est depuis la premi re version multi plateformes et int gre une gestion dynamique des processus MPI Cette biblioth que est de conception tr s proche des besoins des utilisateurs L ensemble des fonctionalit s qu elle propose est directement utilisable et tr s riche MPI devient le standard dans sa cat gorie au d triment de PVM 112 Annexe B Notations UML Introduction La notation UML Unified Modeling Language a t d velopp e en r ponse l appel propo sitions lanc par POMG Object Management Group dans le but de d finir la notation standard pour la mod lisation des applications construites l aide d objets La notation UML repr sente l tat de l art des langages de mod lisation objet Elle se place comme le successeur naturel des notations des m thodes de Booch OMT Object Modeling Tech nique e
158. que qui permet de faire le lien entre l analyse math matique et la conception informatique du projet Apr s avoir d taill les motivations qui nous ont amen s concevoir ce projet et pr sent un bref tat de l art de ce qui existe nous d crivons une formalisation des probl mes math matiques et de leur discr tisation compatible avec une vision orient e objet Ensuite un travail de conceptualisation est galement effectu au niveau de la compr hension de la notion d environnement La lecture de ce chapitre peut galement tre vu comme une introduction la m thodologie de conception orient objet UP Unified Process Dans la seconde partie plus technique apr s avoir d crit la mise en uvre de la m thode sur un cas d cole r solution d un probl me elliptique nous donnons un mode d emploi des biblioth ques de l environnement de travail serveur instrumentation de code et exploitation graphique ainsi que le standart de documentation choisi et les outils utilis s On pourra galement trouver dans les annexes un tat de l art d taill un r capitulatif des no tations UML Unified Modeling Language utilis s ainsi qu une introduction CORBA Common Object Request Broker Architecture Premi re partie De l analyse math matique la conception Chapitre 1 Philosophie et motivations 1 1 Environnement de travail Recherche et enseignement L quipe d Analyse Num rique et Eq
159. qui feront le lien entre l abstraction th orique et l impl mentation technique Ainsi les diff rentes tapes de la r solution d crites dans l tude th orique se retrouvent dans le d coupage objet des composantes logicielles des codes correspondants La structure de base des composantes math matiques sera donc divis e en trois couches repr sentant les diff rents niveaux d abstraction de la r solution le niveau math matique qui d finit de fa on abstraite le probl me traiter correspondant la premi re phase de la r solution Le niveau de discr tisation d crivant la m thode de discr tisation du probl me correspon dant la deuxi me phase de la r solution Le niveau alg brique correspondant la troisi me phase de la r solution c est dire aux calculs proprement dits Ces trois niveaux successifs permettent de r soudre le probl me math matique initial dans sa globalit Cette r solution n cessite des interfaces de communication avec l utilisateur lui permet tant d analyser la ou les phases du processus qui l int ressent Cette structure transverse correspond donc d une fa on g n rale la gestion des communications entre les abstractions math matiques et l ext rieur Ce niveau suppl mentaire non math matique sera nomm utilitaire Dans un premier temps nous d crivons le cadre th orique sur lequel est bas la notion d objet math matique partir de cette stru
160. r l ex cution On suppose que les deux premiers pas du sc nario nominal sont r alis s Ces tapes corres pondent aux cas d utilisation 4 et 5 On consid re donc que l utilisateur a acc d l ex cution qui l int resse Ce sc nario est illustr en 3 9 HO 1 demande une action de contr le ExecutionView 0 R sup re les infos Utilisateur 2 Affiche O Execution ControlView 6 contr le 4 few E action ControlAction Control FIG 3 9 Diagramme de s quence du cas d utilisation 2 R alisation de PUC 3 Visualiser la doc Comme pour le cas pr c dent on suppose que les deux premiers pas du sc nario nominal sont r alis s Ces tapes correspondent aux cas d utilisation 4 et 5 On consid re donc que l utilisateur a acc d l ex cution qui l int resse Le diagramme de s quence est donn en 3 10 1 Demande la visualisation de la doc HO 2 R cup re les infos du code ExecutionView ili Utilisateu InstrumentedCode 4 Choisit le sourceignt on veut la doc 4 Affiche O Source SourcesView 6 Extrait If doc HO CreateDoc HtmlDatasView 5 G n re ou r cup 8 Affiche la dog HTML Q Doc Fic 3 10 Diagramme de s quence du cas d utilisation 3 38 CHAPITRE 3 ENVIRONNEMENT 3 4 ANALYSE 3 4 3 Mod le d analyse Les diagrammes labor es lors des phases 3 4 1 et 3 4 2 d terminent une premi re structure du logiciel Il s
161. ract re int type entier double type r el double pr cision float type r el simple pr cision L exemple ci dessous illustre la cr ation des flux distribu s Fichier AlgebricProblem h include lt string gt include Matr h include Vect h include Context h 86 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 2 INSTRUMENTATION class AlgebricProblem private Context ctxt Solve a linear system with Conjugate Gradient void cg LinearSystem int double Fichier AlgebricProblem cpp tinclude AlgebricProblem h include Global h M O ar Constructor AlgebricProblem AlgebricProblem string nm _name nm ctxt create Error 2 int 1 double 1 ctxt create Solution 2 int 1 double 1 ctxt create Residu 2 int 1 double 1 Dans cet exemple trois flux distribu s formatt s sont cr s Ils sont tous constitu s d un entier et d un r el double pr cision et vont permettre de visualiser les donn es d erreur et de normes des solutions r sidus lors de la r solution du probl me Accession et manipulation des flux distribu s L accession des flux distribu s se fait par l interm diaire de l objet Context gr ce aux op ra teurs et op rateur string nom permet l acc s au flux non formatt nomm nom op rateur string nom permet l acc s au flux formatt nomm nom La manip
162. re en lui rendant un ou des services dans ce cas l acteur est dit secondaire Il faut maintenant d finir les diff rentes interactions que les acteurs ont avec le syst me d ve lopper Nom Acteur D finition Suivre Utilisateur L utilisateur veut visualiser les donn es l ex cution issues de l ex cution d un code instrument Contr ler Utilisateur L utilisateur veut contr ler l ex cution l ex cution d un code instrument Visualiser Utilisateur L utilisateur veut voir la doc d un code la doc instrument Visualiser Logiciel de Le Logiciel utilise le Logiciel de les donn es visualisation Visualisation pour afficher les donn es 3 2 4 Diagramme de contexte Le diagramme de contexte 3 2 permet de synth tiser les informations d finies dans les sec tions pr c dentes Il est bas sur une repr sentation graphique utilisant les objets Le logiciel d velopper est consid rer comme un objet 1 Suivre l ex cution 2 Contr ler l ex cution 4 Visualiser les donn es Logiciel 3 Visualiser la doc Utilisateur Logiciel de Visualisation Fic 3 2 Diagramme de contexte 3 3 Conceptualisation La sp cification des besoins consiste d finir les services que doit fournir le logiciel Chacune des interactions apparaissant dans le diagramme de contexte peut correspondre un Cas d Utilisation Use Case Un UC est une fonctionnalit du logiciel n cessit
163. rentes Les premiers cycles utilisent l outil informatique travers des progiciels afin d illustrer les propri t s de r sultats math matiques Matlab Maple Puis le besoin de d velopper ses propres logiciels pour r soudre plus efficacement certains probl mes se fait sentir On apprend alors des langages de programmation sophistiqu s tels que Fortran 95 C Ces langages tr s riches augmentent la difficult de mise au point des codes de calcul volumineux en respectant des r gles de fiabilit et d efficacit Il est donc n cessaire d enseigner et de promouvoir des techniques de programmation avanc es Les tudiants num riciens qui d velopperont les codes de calcul de demain doivent comprendre les math matiques conna tre les m thodes de r solution ainsi que Vinformatique Nous sommes confront s une probl matique proche de celle voqu e pr c demment pour la recherche c est dire de donner aux doctorants un mode de programmation des outils de bases pour que les codes de calcul soient d velopp s rapidement tout en restant portables fiables facilement adaptables bien document s Les tudiants devant avant tout pouvoir rapidement s in t resser aux probl mes num riques et non se focaliser sur le d veloppement moins que ce ne soit le sujet de l tude Comme pour la recherche il est n cessaire que l informatique refl te les diff rents enseignements qui vont de l illustration de propri t
164. riable Les m thodes suivantes agissent sur ces donn es Construire le probl me partir de ces donn es Effectuer le calcul et obtenir la solution Comme la classe Problem poss de la classe Discret Problem cette m thode va pouvoir lancer le calcul au niveau discret qui lui m me commandera l in version des syst mes au niveau alg brique Demander un rapport de comportement Il faut aussi envisager des proc dures de sauvegarde et de reprise mais devant la simplicit du probl me elles ne sont pour l instant pas indispensables name string operators map lt string Operator gt N datas map lt string Variable gt Discr tisation du solutions map lt string Variable gt A probl me domains list lt Domain gt M thodes de construction discret Discret_Problem du probl me Problem string addOperator string Operator void addDatas string Variable void addSolution string Variable void addDomain Domain void init_h string Discret_Problem solve string int double void evalu void N solution du probl me Evaluation de variables partir du probl me pos FIG 4 1 Classe Problem La classe Discret_Problem C est ce niveau que le probl me r soudre est discr tis c est dire que les algorithmes de r solution sont d finis int gration en temps lin arisation des quations et bien s r discr tisation spatiale On y trouve les versi
165. rmet aux applications L utilisation des noms parlant pour les objets au lieu de r f rence sous forme de cha ne de caract res Le changement de la valeur d une r f rence sur un objet conservant le m me nom permet de ne pas modifier le code de l application Il n est plus n cessaire de stocker les r f rences sur fichier pour la r solution initiale connexion ORB 122 ANNEXE C CORBA MECANISMES DE FONCTIONMAS NON DES SERVICES CORBA Une association nom r f rence est appel e name binding Un contexte de nom naming context est un objet qui stocke les name bindings chaque objet contexte impl mente une table qui associe des noms des r f rences Un nom dans une table peut d signer aussi bien une r f rence d objet sur un objet propre une application qu un autre contexte du service de nommage Le contexte est donc un jeu de liens noms objets dans lequel chaque nom est unique Une hi rarchie de contextes et d associations nom r f rence est appel un graphe de nommage naming graph Le graphe de nommage a les caract ristiques suivantes Pour un contexte particulier les associations nom r f rences sont uniques Un objet ou un contexte peut avoir plusieurs noms la mani re des notions des liens de fichier ou de r pertoire sous UNIX Il existe des contextes sans nom ils sont dits orphelins Un graphe de nommage a des contextes particuliers appel s initial n
166. rt ping void par le client OstreamUnFormatted convToString int string struct Record sequence lt Elemnt gt sizes sequence lt short gt types sequence lt string gt struct RealTimeData union Elemnt sequence lt double gt sequence lt int gt sequence lt float gt 1 sequence lt string gt A q g Structures et Unions IDL FIG 3 25 Diagramme des interfaces IDL des objets communiquants OstreamFactory createUnFormatted exec string name string OstreamUnFormatted createFormatted exec string name string Format OstreamFormatted destroy string exec string name void ExecutionFactory create name string user string host string AccessAuthorization Execution destroy name string boolean AccessAuthorizationFactory create owner int group int other int AccessAuthorization ControlActionFactory ControlAction FIG 3 26 Diagramme des interfaces IDL des fabriques d objets communiquants CHAPITRE 3 ENVIRONNEMENT 3 7 CONCEPTION D TAILL E Gestion du nommage gestion des canaux d v nements Gestion du nommage Les objets communiquants de type Ostream et Execution sont r f renc s sur le service de nommage selon le sch ma 3 27 Si on se r f re la structure des fichiers sur un syst me Unix on a les analogies suivantes les rectangles correspondent aux contextes de nom qui peuvent tre interpr t s comme des r
167. ructions d une m thode ou d une fonction et il est bien sur possible d emboiter plusieurs zones d analyse L argument de type string permet d identifier chaque zone C est par exemple de fa on classique le nom de la fonction ou de la m thode analys e pop Cette fonction signale la fin d une zone d analyse Cet appel correspond au dernier appel push l imbrication des zones se faisant sur le principe d une pile FILO L initialisation du flow trace se fait lors de l instanciation de l objet Process L analyse finale du flow trace se fait lors de l appel de la fonction end d taill e en 5 2 3 L exemple suivant d taille l utilisation du flow trace dans le programme principal de notre code de test include Global h int main int argc char argv init argc argv TST OPERATOR PERSISTENT 7 4 4 string option push Main Cout lt lt TST OPERATOR Read a domain lt lt endl Domain geom TRIA Domain test 2d mesh MESH Cout lt lt geom lt lt endl Cout lt lt TST OPERATOR enter an OPTION while cin gt gt option Cout lt lt endl pop end 85 5 2 INSTRUMENTATION CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL return 0 Enfin ce dernier exemple expose la mise en oeuvre du flow trace dans une m thode d une des classes du projet issue du fichier DiscreteProblem cpp fn Solving the problem void DiscreteProblem solve string inv
168. ructure un comportement et des relations similaires La figure B 2 montre la notation graphique d une classe Les classes sont repr sent es par des rectangles compartiment s Le premier compartiment contient le nom de la classe Le second compartiment contient les attributs et le troisi me contient 114 ANNEXE B NOTATIONS UML B 3 ASSOCIATIONS ET CARDINALIT Attribut_ priv int Attribut_de classe double 0 Attribut_public char Attribut_prot g string op ration_publique void op ration priv e string i Fic B 2 Mod lisation UML d une classe les op rations UML d finit trois niveau de visibilit pour les attributs et les op rations public qui rend l l ment visible toutes les entit s du programme prot g qui rend l l ment visible aux sous classes de la classe priv qui rend l l ment visible la classe seule Le niveau de visibilit est symbolis par les caract res et qui correspondent respective ment aux niveaux public prot g et priv Les attributs et op rations de classe visibles globalement dans toute la port e lexicale de la classe sont repr sent s par un nom soulign B 3 Associations et cardinalit Les associations repr sentent des relations structurelles entre classes d objets La plupart des associations sont binaires et sont symbolis es par une ligne entre les classes associ es Les associations peuvent tre nomm es
169. s Du point de vue de l enseignement nous avons besoin d un outil p dagogique simple afin de proposer aux tudiants une base de travail qu ils feront voluer au cours de leur cursus pour arriver au d veloppement d un code efficace parall le multi plateformes par exemple La rapidit de d veloppement est l un des points important dans le choix d une m thodologie L environnement informatique de notre quipe a une influence sur les choix de m thodologie de programmation que nous sommes men s faire Du point de vue des machines de calcul l ducation et la recherche ont toujours plus ou moins utilis trois niveaux de mat riels informatiques 1 des moyens locaux 2 des moyens de m so informatiques au niveau de l Universit 3 des moyens nationaux Nous n avons bien videmment pas la pr tention de tout r crire Nous pr sentons donc ici une analyse de l tat de l art dans les domaines des m thodologies de programmation et des biblioth ques et dans celui des logiciels existants dans les mati res qui sont les n tres Bien s r cette analyse ne peut tre que partielle et sera compl t e au cours du temps Un certain nombre de crit res tels que l efficacit la r utisabilit le portage sont vidents Mais dans le cadre de la recherche et de l enseignement l instrumentation des codes est fondamen tale Nous avons besoin de comprendre ou de montrer le comportement des m thodes de calc
170. s m mes 3 6 5 Module Code Le module Code a d j t partiellement d taill lors de la conception pr liminaire concernant le module Execution Le r le de l objet contr le CodeManagement d fini lors de l analyse est partiellement tenu par l objet Process Le diagramme 3 23 illustre la conception de la partie instrumentation du code de calcul 3 7 Conception d taill e La conception d taill e consiste compl ter les classes de la conception pr liminaire de fa on ce que leurs interfaces soient compl tement d finies et document es Comme les langages de programmation et les protocoles qui vont tre utilis s sont connus on peut tre beaucoup plus pr cis au niveau des diagrammes de classes pr cision des types de donn es ajout de nouveaux attributs et de nouvelles m thodes Comme l illustrent les sections pr c dentes l architecture d finit naturellement trois grands sous syst mes le sous syst me code de calcul le sous syst me serveur de donn es le sous syst me utilisateur final Selon ce sch ma on peut donc diviser la conception d taill e en trois phases conception d taill e des classes du sous syst me code de calcul conception d taill e des classes du sous syst mes serveur de donn es 48 CHAPITRE 3 ENVIRONNEMENT 3 7 CONCEPTION D TAILL E Show All Show last records Courbe sur le dernier enregistrement Courbe sur tous les enre
171. ste des variables discr tes approchant les inconnues du probl me continu correspondant la liste des domaines discrets approchant les domaines continus du probl me continu corres pondant L obtention de toutes ces entit s discr tes n cessite la connaissance de la discr tisation choisie La construction du probl me discret est g r par le probl me continu Les services propos s par la classe Probl me Discret sont donc d un seul type des services de contr le de la r solution r lisant la deuxi me phase de cette r solution qui consiste en la lin arisation du probl me discret c est dire en la cr ation du Probl me Alg brique associ Les remarques sur les associations existantes entres les objets du niveau discret au sein de la classe Probl me Discret sont identiques celles faites au niveau continu Ainsi le cycle de vie de l objet Probl me Alg brique est li au cycle de vie de l objet Probl me Discret qui l a cr Il s agit encore d une composition Par contre les objets repr sentants les op rateurs discrets les variables discr tes et les domaines discrets sont li s l objet Probl me Discret par agr gation simple pour les m mes raisons que celles voqu es pr c demment Enfin une m me discr tisation peut tre utilis e pour la r solution de plusieurs probl mes L objet Discr tisation est donc associ l objet Probl me Discret qui l utilise par une agr gat
172. stribuer des invocations Recevoir les r ponses et ceci de la part d objets dont les stubs du client ne sont pas li s dans son module La DIT est donc une interface de PORB qui comprend des routines autorisant le client et VORB travaillant ensemble construire et invoquer des op rations sur tout objet disponible l ex cution Object Adapter OA Un adaptateur d objet est l interface principale pour une impl menta tion objet pour acc der aux services fournis par un ORB Il adapte l objet CORBA au langage de la projection g re et interpr te les r f rences d objets et active les impl mentations des servants lors des invocations Les adaptateurs d objets servent de glue entre les servants et l ORB Du point de vue architectural de la conception orient objet un object adapter est un objet qui adapte l interface d un objet une interface diff rente attendue par le requ teur Les adaptateurs d objets cr ent les r f rences d objets qui permettent aux clients de s adresser ces objets s assurent que chaque objet est incarn par un servant r solvent les requ tes du cot serveur de PORB et les redirigent au servant appropri Il faut enregistrer les servants sur Object Adapter pour permettre le renvoi des requ tes Implementation Repository C est le r f rentiel des impl mentations Il contient l information n cessaire l activation des objets Interface R
173. t tre galement utilis e pour les l ments finis curvilignes Les vecteurs associ s respectivement la solution up et au second membre fp sont form s des vi et des fi 4 2 Discr tisation par diff rences finis Sur une grille r guli re en dimension 2 on peut d finir la discr tisation par diff rences finies comme le produit ext rieur des discr tisations en dimension 1 dans chaque direction On d crit donc le formalisme unique pour les diff rences finies en dimension 1 puis on tendra la dimen sion 2 En dimension 1 sur 0 1 par exemple le probl me 4 1 s crit d V u au zlu au avec u 0 0 comme condition aux limites Il s agit maintenant de construire un diagramme quivalent de celui obtenu en l ments finis Pour cela on introduit les notations suivantes en supposant que l on travaille dans le segment unit Soit N un entier positif on note h 1 N le pas de discr tisation Les n uds de la grille de calcul sont pour variant entre 0 et N x ih Les domaines de contr le w sont des segments de taille h centr s sur le point x On d finit le vecteur suivant pour i dans 0 N P x x a zi 1 65 4 2 DISCR TISATION PAR DIFF RENCES FINIS CHAPITRE 4 APPLICATION On cherche une matrice carr e d ordre 3 inversible et ne d pendant pas le l indice telle que AY Pin Ah Ue AY Prin ir ua A71Y P 2 u zx Uj
174. t me code de calcul Le langage choisit pour l impl mentation de la partie calcul du logiciel est le C De plus le code de calcul doit communiquer avec le serveur de donn es par l interm diaire du protocole CORBA Ces n cessit s techniques font appara tre de nouvelles classes notamment pour l acc s aux r f rences des objets CORBA tels que ORB le NamingService ou la fabrique des canaux d v nements D autre part les classes instrumentales d crites en 3 6 5 sont compl t es par de nouvelles classes permettant notamment la gestion des v nements re us et envoy s par le client Classes Corba La classe singleton CorbaClient permet d initialiser les r f rences de ces objets CORBA Son interface est illustr e par le diagramme 3 29 Singleton CorbaClient _orb ORB _naming NamingContext _eventFactory EventChannelFactory i PingServer naming NamingContext eventFactory EventChannelFactory state boolean A Etat de la connexion Fic 3 29 Classes Corba du client D autre part le code de calcul va tre amen cr er des objets distribu s sur le serveur objets Ostream AccessAuthorization Il faut donc pr voir des classes interfa ant les fabriques d objets du serveur Ces classes sont nomm s RExecutionFactory RAccessAuthorizationFactory et ROstreamFactory le pr fixe R signifiant Remote Classes instrumentales Les classes permettant l instrumen
175. t OOSE Object Oriented Software Engineering et de ce fait UML s est tr s rapidement impos e la fois aupr s des utilisateurs et sur le terrain de la normalisation Les cr ateurs d UML insistent tout particuli rement sur le fait que la notation UML est un langage de mod lisation objet et non pas une m thode objet Un mod le est une description abstraite d un syst me ou d un processus une repr sentation simplifi e qui permet de comprendre et de simuler Le terme mod lisation est souvent employ comme synonyme d analyse c est dire de d composition en l ments simples plus faciles com prendre En informatique la mod lisation consiste tout d abord d crire un probl me puis d crire la solution de ce probl me ces activit s s appellent respectivement l analyse et la conception Ainsi un mod le est une abstraction de la r alit L abstraction est l un des piliers de l approche objet Il s agit d un processus qui consiste identifier les caract ristiques int ressantes d une entit en vue d une utilisation pr cise L abstraction d signe aussi le r sultat de ce processus c est dire l ensemble des caract ristiques essentielles d une entit retenues par un observateur Un mod le est une vue subjective mais pertinente de la r alit Un mod le d finit une fron ti re entre la r alit et la perspective de l observateur Ce n est pas la r alit mais une
176. t abstraite 4 4 Elle doit accueillir aussi bien des maillages de type l ments finis ou volumes finis que des grilles pour les diff rences finis get_nb_elms nombre d l ments get_nb_soms nombre de sommets get_nb_som_elm nombre de sommets par l ment DiscreteDomain get_nb_elms int get_nb_soms int get_nb_som_elm int int get_som_elm num ro des sommets par l ment get_som_zon indicateur de zone par sommet get_som_coo coordonn es des sommets get_som_elm int int int get_som_zon int int get_som_coo int int double comput_nb_elm_som void comput_elm_som void comput_som_fac void comput_nb_elm_ som calcul du nombre maximal d l ments issu d un sommet comput_elm_ som calcul des l ments issus d un sommet comput_som_ fac num rotation et calcul des faces FIG 4 4 Classe DiscreteDomain Le langage utilis pour nommer les diff rentes m thodes est celui des l ments finis Nous proposons deux sp cialisations de la classe DiscreteDomain l une pour les maillages de type l ments finis ou volumes finis classe Triangulation pour les maillages non structur s l autre pour les grilles classe Grid Les instances de la classe DiscreteDomain disposent de la liste des types de domaine de contr le qu elles connaissent On y d finit les conventions de num rotations locales Cette information est utilis e aussi par le paquetage Method Maillages non str
177. t incontournables et r glent le probl me de l alg bre lin aire des m thodes directes L alg bre lin aire it rative peut tre r crite Elle est effectivement plus simple programmer La plupart des applications sur lesquelles nous travaillons utilisent la discr tisation d un do maine de calcul qui est en g n ral un ouvert born de R ou de RR Il existe peu de d veloppements de mailleurs 2D 3D du domaine public Le plus accessible est celui de MODULEF Il faut aussi signaler le projet GAMMA G n ration Automatique de Maillages et M thodes d Adaptation de l INRIA qui offre quelques mailleurs de tr s bonne qualit Concernant les logiciels graphiques nous utilisons depuis longtemps le logiciel commercial AVS Express Concernant les logiciels un domaine public on peut citer open DX et VTK ainsi que certaines extensions graphique de JAVA De fa on g n rale il faut utiliser les logiciels et biblioth ques sp cifiques lorsqu ils sont n ces saires Il faut galement noter les travaux plus globaux comme elsa d velopp l ONERA qui est un logiciel de simulation en A rodynamique FreeFEM qui r soud des EDP par l ments finis Overture d velopp au LLNL Lawrence Livermore National Laboratory qui offre un ensemble 9 1 4 M THODOLOGIE CHAPITRE 1 PHILOSOPHIE ET MOTIVATIONS de classes pour la r solution de probl mes aux diff rences finies et volumes finis Ces travaux ont leurs finalit s pro
178. t les classes de tableaux s quentiels et parall les A P et propose des discr tisations par diff rences finies et volumes finis A 3 Logiciels et Biblioth ques NON Objets De nombreuses biblioth ques du domaine publique proposent des utilitaires d alg bre lin aire pour la r solution de syst mes lin aires le calcul de valeurs propres ou singuli res la factorisation de matrices Nous ferons une distinction entre les m thodes de r solutions directes et it ratives 108 ANNEXE A ETAT DE L ART A 3 LOGICIELS ET BIBLIOTH QUES NON OBJETS La grande majorit des m thodes it ratives r centes sont des m thodes de descente pour lesquels la matrice n intervient que par l interm diaire du produit MATRICE VECTEUR Par ailleurs ces m thodes sont simples de mise en uvre ce qui n est pas le cas pour les m thodes directes On choisit donc de ne s int resser qu aux biblioth ques d alg bre lin aire dont les algorithmes reposent sur des m thodes directes A 3 1 Les biblioth ques d alg bre lin aire L ensemble LINPACK EISPACK LINPACK est une collection de sous programmes FORTRAN 77 pour la r solution de syst mes lin aires et de probl mes lin aires de moindres carr s EISPACK est une collection de sous programmes FORTRAN 77 qui calculent les valeurs propres et les vecteurs propres pour neuf classes de matrices Ces deux biblioth ques sont bas es sur des fonctions d alg bre lin aire l m
179. t pour lequel le choix se porte sur Perl La base des utilisateurs est impl ment sous mysql base de donn es gratuite et interfa able avec le C comme avec Java Choix du mod le de distribution Le middleware d architecture distribu qui permettra d as surer une r partition 3 tiers des modules constituants le logiciel doit donc imp rativement v rifier les crit res suivants d finis par les paragraphes pr cedents multi syst mes d exploitation et multi plateformes distribution sur protocole r seau TCP IP compatible avec les langages Java et C On peut ajouter ces contraintes les points suivants propre notre environnement de travail Le mod le de distribution doit tre objet conform ment la structure globale du logiciel Ce protocole doit tre du domaine public donc gratuit et open source Il doit tre normalis et reconnu afin d assurer une certaine p rennit du logiciel Ces contraintes nous ont conduit faire le choix du middleware CORBA qui r pond effectivement aux besoins pr c dents Il existe de nombreuses impl mentations du bus CORBA du domaine public Ce middleware orient objet est avant tout une norme sp cifi e par un consortium interna tional important OMG Object Management Group qui lui assure une certaine p rennit De nombreuses impl mentations du domaine public sont multi plateformes et la norme a t sp cifi e de telle sorte que deu
180. tation des codes de calcul d j d finies sont compl t es par de nouvelles classes les unes vocation secondaire sous objets des classes pr sent es les autres permettant la gestion de l envoi et de la r ception des v nements temps r els Ces classes sont des threads qui permettent d acc der instantan ment un v nements d s que celui ci est communiqu au canal concern Ces classes de gestion d v nements sont illustr es par le diagramme 3 30 Thread EventManagement Singleton ControlEventManagement control string void Singleton RealTimeEventManagement Fic 3 30 Diagramme des classes de gestion d v nements 3 7 3 Conception d taill e du sous syst me utilisateur final Le langage choisit pour la partie IHM est Java L I HM doit pouvoir communiquer avec le serveur CORBA mais aussi avec le serveur de la base de donn es utilisateurs Ainsi les classes interfa ant 54 CHAPITRE 3 ENVIRONNEMENT 3 8 IMPL MENTATION ET TESTS la connexion avec le serveur Mysql notamment la classe UserDataBase doivent galement tre d velopp es en Java Pour la communication avec le serveur CORBA Pinterface de la classe CorbaClient d fini pour le sous syst me code de calcul en 3 7 2 est r utilis e La conception des autres classes de THM a t suffisamment d taill e dans les parties pr c dentes les classes mod les dans l ensemble de la section
181. teur UCA 2 L utilisateur acc de l ex cution du code instrument qui l int resse UC5 3 L utilisateur visualise les donn es issues de cette ex cution d un code instrument ventuel lement gr ce au logiciel de visualisation UC6 UC2 contr ler l ex cution Nom Contr ler l ex cution But L utilisateur veut contr ler l ex cution d un code instrument Acteur primaire Utilisateur Sc nario principal 1 Le syst me identifie l utilisateur UCA 2 L utilisateur acc de l ex cution du code instrument qui l int resse UC5 3 L utilisateur choisit l action effectuer suspendre arr ter red marrer 4 Le logiciel applique l action choisie l ex cution UC3 Visualiser la doc Nom Visualiser la doc But L utilisateur veut voir la doc d un code instrument Acteur primaire Utilisateur Sc nario principal 1 Le syst me identifie l utilisateur UCA 2 L utilisateur acc de l ex cution qui l int resse UC5 3 L utilisateur choisit un des fichiers sources de cette ex cution pour lequel il veut la doc 4 Le logiciel affiche la documentation relative ce source 3 3 2 UC niveau fonction Les Cas d Utilisation de niveau fonction permettent de d tailler certains pas des sc narii no minaux des Cas d Utilisation de niveau t che 30 CHAPITRE 3 ENVIRONNEMENT 3 3 CONCEPTUALISATION UCA Identifier l utilisateur Nom Identifier l ut
182. the problem Second member initialization 77 4 3 MISE EN UVRE CHAPITRE 4 APPLICATION ADatas 1 0 Solution initialization ASol 0 0 Resolution with cg int double epsilon problem cout lt lt cout lt lt problem cout lt lt cout lt lt View cout lt lt Solution Mass Operator itmax 100 0 000001 solve CG itmax epsilon Solution Rigi Operator lt lt endl ASol lt lt endl evalu Verification must be one lt lt endl ADatas lt lt endl the solution cout lt lt MSol lt lt endl 78 lt lt endl Chapitre 5 Pratique de l environnement de travail Introduction Cette partie correspond un guide d utilisation de l environnement de programmation et d ex ploitation pr sent pr c demment L instrumentation d un code de calcul se fait par l interm diaire d une biblioth que de classes disponibles en diff rents langages et qui permettent de partager les donn es du codes via le serveur CORBA La premi re section correspond la phase de d marrage du serveur de donn es La deuxi me section pr sente la d marche d instrumentation d un code de calcul en C en se basant sur l exemple concret de l instrumentation des sources de la partie math matique du logiciel GTOOCS Enfin la derni re section d taille l utilisation de l interface graphique permettant l exploitation des c
183. thod ostream amp FULL print ostream amp os const os lt lt Print FULL lt lt endl int i j for i 1 i lt _nb_lins i for j 1 j lt _nb_cols j os lt lt j lt lt os lt lt endl os lt lt i lt lt for j 1 j lt _nb_cols j os lt lt _matr i j lt lt os lt lt endl return os DN _ Print Method StdCout amp FULL print StdCout amp os const os lt lt Print FULL lt lt endl int i j for i 1 i lt _nb_lins i for j 1 j lt _nb_cols j os lt lt j lt lt os lt lt endl 08 lt lt ic lt u o for j 1 j lt _nb_cols j os lt lt _matr i j lt lt os lt lt endl return os 84 CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL 5 2 INSTRUMENTATION 5 2 5 Profiling du code Flow trace Cet outil partie int grante de l environnement de programmation permet aux utilisateurs d analyser le co t en temps CPU et d tablir un profil de fonctionnement d un programme de calculs Son utilisation est optionnelle et particuli rement simple Deux fonctions globales d clar es dans la fichier d ent te Global h permettent de contr ler le processus d analyse push string Cette fonction d signe le d but d une zone d analyse Une zone d analyse est en g n ral constitu e des inst
184. tion Diagramme de s quence global repr sentant la r solution d un probl me math ma tique au niveau des op rateurs Mod le d analyse du probl me math matique Diagramme de classes du paquetage Probl me Diagramme de classes du paquetage Op rateur Diagramme de classes du paquetage Variable Diagramme de classes du paquetage Domaine Diagramme de classes de la hi rarchie Discr tisation Diagramme de classes de la hi rarchie Stockage Diagramme de composants illustrant les communications entres les classes math matiques et les classes utilitaires Environnement de travail global Diagramme de context sos s srini 4 meme gant a daa Data alu Diagramme des cas d utilisation Diagramme U M L du besoin IHM Diagramme de s quence du cas d utilisation 4 Diagramme des classes issues de l analyse du domaine Diagramme de s quence du cas d utilisation 5 Diagramme de s quence du cas d utilisation 6 Diagramme de s quence du cas d utilisation 2 Diagramme de s quence du cas d utilisation 34 Diagr
185. tion et se repr sente dans les diagrammes par un losange de couleur noire La composition implique une contrainte sur la valeur de la multiplicit du c t de l agr gat elle ne peut prendre que les valeurs 0 ou 1 la valeur 0 correspondant 4 un attribut non renseign La figure B 4 illustre la repr sentation graphique d une agr gation et d une composition operators Les DiscreteProblem FIG B 4 Mod lisation UML d une agr gation et d une composition B 4 G n ralisation et h ritage La g n ralisation d signe la relation de classification entre un l ment plus g n ral et un l ment plus sp cifique L l ment plus sp cifique peut contenir des informations qui lui sont propres condition de rester coh rent avec la description de l l ment plus g n ral La relation de g n ralisation se repr sente au moyen d une fl che qui pointe de la classe la plus sp cialis e vers la classe la plus g n rale On dit aussi que la classe la plus sp cialis e d rive ou h rite de la classe la plus g n rale La relation de sp cialisation signifie est un ou est une sorte de La figure B 5 montre la repr sentation graphique d une relation d h ritage Finite Elements Finite Differences Fic B 5 Mod lisation UML d une relation de g n ralisation B 5 Conclusions Nous avons pr sent une description de la notation UML des dia
186. uations aux D riv es Partielles du Laboratoire de Math matique de l Universit de Paris Sud Orsay a deux axes d action aboutissant l usage intensitif de l Informatique Scientifique la recherche et l enseignement Nous sommes donc tenus par nature tre la pointe de la technologie et si possible au del de fa on enseigner les techniques informatiques ainsi que les algorithmes et les m thodes num riques les plus performants Du point de vue de la recherche notre quipe d veloppe en particulier de nouvelles m thodes num riques pour la r solution de probl mes de plus en plus compliqu s issus de domaines scienti fiques divers La complexit des probl mes trait s fait que les techniques de r solution sont leur tour d une difficult de mise en uvre telle que les d veloppements informatiques les plus r cents deviennent indispensables leur gestion De plus la masse des calculs n cessaires la r solution num rique de tels probl mes n cessite l utilisation de calculateurs particuli rement puissants Par ailleurs l environnement universitaire nous permet d avoir des liens privil gi s avec d autres communaut s scientifiques dans des domaines d application tr s vari s ce qui nous donnent acc s aux motivations physiques des probl mes que nous souhaitons tudier math matiquement Les informaticiens nous aident galement dans le choix des outils et des langages les plus adapt s nos tude
187. uctur s La notion de maillage est tr s vague On entend par maillage dans sa version minimaliste la donn e du nombre d l ments ou domaines de contr le du nombre de sommets des coordonn es des sommets des num ros de sommets par l ments dans notre exemple tous les l ments sont du m me type d un indicateur par sommet partir de ces informations nous sommes capables de construire les quantit s manquantes comme le nombre de cot s ou faces la liste des extr mit s des cot s la liste des l ments partageant une m me face la liste des l ments partageant un m me sommet des indicateurs par l ments ou par faces Une seule m thode permet la construction de ces quantit s comput_som_fac Certains mailleurs permettent la construction de ces quantit s directement Mais afin de respecter les conventions internes des maillages ordre des sommets des faces sur un l ment par exemple il est pr f rable d entrer le maillage minimal et de construire le reste gr ce aux m thodes de la classe DiscreteDomain Grilles La notion de grille se caract rise par une num rotation 2 j k des n uds et des mailles Les informations comme les num ros des sommets ceux des l ments mailles ne sont pas stock es mais recalcul es Il en est de m me pour les coordonn es de sommets La construction d une grille demande la connaissance 70 CHAPITRE 4
188. ulation de flux se fait comme pour la biblioth que standard par l interm diaire de Vop rateur L exemple suivant faisant suite l exemple pr c dent illustre le remplissage des donn es des flux distribu s Fichier AlgebricProblem cpp Y i ee Ne Sen re EEE ere Iterative inversion of a linear system using Conjugate Gradient void AlgebricProblem cg LinearSystem sys int mxit double epsl sys A matrice 87 5 2 INSTRUMENTATION CHAPITRE 5 ENVIRONNEMENT DE TRAVAIL sys y solu sys x smbr Matr amp A sys A Vect amp solu sys y Vect amp smbr sys x Cout lt lt CG algorithm lt lt endl Cout lt lt nb max it lt lt mxit lt lt endl Cout lt lt epsilon lt lt epsl lt lt endl for itr 1 itr lt mxit itr A Prod_Mat_Vec desc work work A desc aal dot_prod desc work if aal lt 1 0e 15 Cout lt lt PCG ERROR aai too small lt lt endl break lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt al aa aal solu idpay al desc solu solu al desc resi idpay al work resi nsolu ndesc nresi error Il resi al work dot_prod solu solu dot_prod desc desc dot_prod resi resi al al ndesc CG lt lt itr error nsolu ndesc nresi aa aal al bbi lt lt endl ctxt Error lt lt it lt
189. uls afin de pouvoir effectuer des analyses pertinentes Dans ce chapitre nous d veloppons l ensemble de ces points pour aboutir un cahier des charges de ce que devrait tre notre m thodologie de programmation 5 1 1 ENVIRONNEMENT CHAPITRE 1 PHILOSOPHIE ET MOTIVATIONS 1 1 1 La recherche Les activit s de recherche de l quipe d Analyse Num rique et E D P peuvent tre regroup es bri vement en trois domaines de comp tences La recherche fondamentale c est l aspect math matique du probl me qui est ici analys Les questions de r gularit d existence d unicit des solutions de validit du probl me sont tudi es Des analyses plus th oriques sont galement men es par nos sp cialistes des E D P La recherche appliqu e le premier point r solu la question de la m thode de r solution peut tre pos e elle conduira la mise au point de nouveaux algorithmes Le calcul scientifique enfin la mise en uvre doit tre faite afin de v rifier l efficacit des m thodes mises au point Il est galement courant que l tude num rique d un probl me aide dans la compr hension des quations et oriente les tudes th oriques Cela implique que ces trois niveaux soient repr sent s dans les codes de recherche de l quipe th orie des quations m thodes de r solution et moyens informatiques Chacun doit travailler son niveau sans remettre en cause les autres parties des codes de
190. us les l ment k du maillage et o l on note Vk l ensemble des indices des degr s de libert d pendant de k En ce qui concerne les diff rence finies la matrice est simple car ind pendante de la maille Sur les points int rieurs elle s crit 1 1 1 4 1 1 Le diagramme de classe UML 2 9 montre la mod lisation de la hi rarchie de classe Discr tisation 23 2 4 CONCEPTION D TAILL E CHAPITRE 2 ANALYSE MATH MATIQUE Discretisation parcoure maillage construit operateur elementaire A Difference_Finies FIG 2 9 Diagramme de classes de la hi rarchie Discr tisation 2 4 6 Conception d taill e de la hi rarchie Stockage Les instances de cette classe correspondent aux choix du d veloppeur en mati re de stockage des matrices Elle est essentielle pour optimiser la place m moire et l acc s aux l ments Comme pour la classe Discr tisation elle sera sp cialis e en fonction des besoins et des types de matrices trait es Les services que doivent rendre les instances de cette classes sont des fonctions d acc s aux l ments des fonctions de remplissage des fonctions de manipulation essentiellement le calcul du produit matrice vecteur De facon analogue au cas de la hi rarchie Discr tisation il est important d abstraire au maximum la classe Stockage pour assurer une meilleure modularit du niveau alg brique La mod lisation UML de la h
191. us les objets CORBA Il offre un environnement d ex cution aux objets en masquant les h t rog n it s li es aux langages de programmation aux syst mes d exploitation aux processeurs et aux r seaux Les services objets communs CORBA Services ils fournissent sous forme d objets CORBA les fonctions syst mes n cessaires la plupart des applications r parties annuaires Naming Service cycle de vie des objets v nements Event Service s curit persistance Les interfaces de domaines Domain Interfaces elles d finissent des objets m tiers sp cifiques certains secteurs d activit s sant t l coms finances Les objets applicatifs Application Objects ils correspondent des objets sp cifiques une application r partie et donc non standardis s Nous allons par la suite faire appel un certain nombre de termes propres au vocabulaire CORBA que nous d finissons donc maintenant IDL Interface Definition Language Le langage IDL permet de d finir les interfaces des objets CORBA Il est ind pendant des langages d impl mentation des servants de ces objets La compilation d une interface IDL g n re un fichier souche stub pour la partie client et un fichier squelette skeleton pour la partie serveur D velopper des applications distribu es flexibles sur des plates formes h t rog nes n cessite une s paration stricte interface impl mentation IDL aide accomplir cette s parati
192. ve aux diff rences finies 74 CHAPITRE 4 APPLICATION 4 3 MISE EN UVRE 4 3 9 La classe Storage On propose trois types de stockage des matrices celui des vecteurs est trivial et est repr sent par des tableaux monodimentionnels Pour chaque m thode de stockage on doit d finir les m thodes d acc s aux lignes ou aux colonnes des matrices de produit matrice vecteur et de remplissage 4 7 nb_lins int cumul_coef int int double void Prod_Mat_Vec Vect Vect void Invs_Dia_Vec Vect Vect void indMap map lt string CSR Array gt li int i map lt string ELL Array gt indTab CSR_Array int i ELL_Array matr Tab lt double 1 gt Tab lt double 2 gt CSR_Array nb_lins int nb_cols int nb_nzero int ndia Tab lt int 1 gt nrow Tab lt int 1 gt ncol Tab lt int 1 gt nzero int nrow int int nzero int nadr int int int ncol int int ndia int int Fic 4 7 Hi rarchie de la classe Storage Le format ELL Le format ELL voir bibliotheque ELLPACK utilise des tableaux deux indices pour stocker la matrice Il est n cessaire de conna tre le nombre maximal de coefficients non nuls par ligne Ce stockage n est pas optimal de ce fait Le produit matrice vecteur s crit en utilisant les noms des attributs des classes concern es ELL et ELL_Array for i 1 i i lt nb_lins 1 y i 0 0 for k 1 k
193. vec retour gt gt restart listExecutions Demander le contr te boundary ExecutionsView LUSES ec retour gt gt listDonnees boundary ExecutionView lt TiESt valider lt lt Synchrone A lt Synchrone avec retour gt gt boundary StatsDatasView boundary HtmlDatasView valider lt lt Synchrone ss retour gt gt Demander la visualisatio boundary DatasView boundary GraphDatasView void 2 a gt as 3 a amp 59 25 2 boundary TextDatasView valider FIG 3 4 Diagramme U M L du besoin IHM 33 3 4 ANALYSE CHAPITRE 3 ENVIRONNEMENT 3 4 Analyse L objectif de l analyse est de comprendre et de structurer le logiciel La phase d analyse consiste donc mod liser le probl me de fa on orient objet Il faut recenser de pr cisemment la liste des principales entit s du syst me classes et instances les relations de toutes sortes h ritage composition communication ces diff rentes entit s les aspects dynamiques envois de messages les aspects fonctionnels flux traitements On peut distinguer deux phases l analyse du domaine qui consiste identifier les objets du probl me l analyse applicative qui revient identifier les objets de contr les li s au logiciel et qui seront responsables de la r alisation des UC Ces deux tapes sont re
194. vue tr s subjective de la r alit Bien qu un mod le ne repr sente pas une r alit absolue un mod le refl te des aspects importants de la r alit il en donne donc une vue juste et pertinente Le caract re abstrait d un mod le doit notamment permettre de faciliter la compr hension du syst me tudi Il r duit la complexit du syst me tudi permet de simuler le syst me le repr sente et reproduit ses comportements Concr tement un mod le r duit d compose la r a lit dans le but de disposer d l ments de travail exploitables par des moyens math matiques ou informatiques UML permet donc de mod liser une application selon une vision objet 113 B 1 PAQUETAGES ANNEXE B NOTATIONS UML UML d finit plusieurs mod les pour la repr sentation des syst mes le mod le des classes qui capture la structure statique le mod le des tats qui exprime le comportement dynamique des objets le mod le des cas d utilisation qui d crit les besoins de l utilisateur le mod le d interaction qui repr sente les sc narios et les flots de messages le mod le de r alisation qui montre les unit s de travail le mod le de d ploiement qui pr cise la r partition des processus Les mod les sont regard s et manipul s par les utilisateurs au moyen de vues graphiques v ri tables projections au travers des l ments de mod lisation contenus par un ou plusieurs mod les De nombreuses
195. x impl mentations sachent communiquer entres elles 41 3 6 CONCEPTION PR LIMINAIRE CHAPITRE 3 ENVIRONNEMENT Les principaux langages d utilisation de CORBA sont C et Java qui peuvent donc au toriser une encapsulation des langages tels que le fortran 77 et le fortran 90 Les communications entre bus CORBA par l interm diaire du protocole TCP IP sont par faitement sp cifi e et op rationnelles Deux machines distantes peuvent donc ais ment com muniquer par ce moyen Les autres middlewares d architecture distribu e RMI DCOM ne r pondent pas compl tement aux contraintes exprim es probl me de portage de langage Vue de l architecture physique partir des choix techniques exprim s dans les sections pr c dentes on peut d composer le logiciel en diff rents modules le module client pour IHM paquetage View le module serveur de donn es paquetages User Data et Execution le module de calcul paquetage Code Ces modules interagissent entres eux selon le diagramme 3 13 SERVEUR DE DONNEES SUPER CALCULATEUR Envoi de Transmission requ tes Machine permettant la des requ tes Machine sur laquelle Machine cliente de localisation des s effectue le calcul l utilisateur final donn es et la gestion des requ tes des Echanges machines clientes Echanges de donn es de donn es FIG 3 13 Sch ma de l architecture physique Cette d composition doit assurer les
196. xte nous avions acquis une machine vectorielle multiprocesseurs l poque du CCVR et de ses machines CRAY Ce calculateur nous a permis de vectoriser nos applications Aujourd hui nous disposons d une grappe de PC biprocesseurs reli s par un r seau rapide Bien entendu nous travaillons aussi sur des stations de d veloppement Sun SGI PC Mac des stations graphiques des stations de bureautique et nous utilisons une station de montage vid o le tout tant reli par un r seau de classe 5 Nous insistons sur le fait que l ensemble des moyens de calcul locaux ne repr sente qu un outil de d veloppement et ne permet pas d effectuer des calculs de taille r aliste C est pourquoi le Centre d Informatique Scientifique du C R I de l Universit de Paris Sud repr sente un l ment indispensable notre activit num rique Le C I S nous offre des machines de puissance moyenne et un environnement de travail plus proche de celui de l industrie Ceci nous permet de tester nos codes pour des tailles de probl mes plus r alistes des tailles r elles dans certains cas et dans un environnement diff rent On y affine aussi le d veloppement en fonction des difficult s apparaissant in vitablement avec l augmentation de la taille des calculs Enfin les centres nationaux permettent l exploitation r elle de nos codes de calcul gr ce la puissance et la taille m moire de leurs machines Une premi re conclusion s impose nous

Download Pdf Manuals

image

Related Search

Related Contents

Gear Head UH8000AL  Manuale di installazione per centrali serie1X-F    Hanns.G 15" LCD Monitor  Uso e Manutenzione  STORMY STORMY CC  MINI WASH M9016 - KRESCENDO Multimedia  

Copyright © All rights reserved.
Failed to retrieve file