Home
rapport de recherche
Contents
1. 61 6 1 Les options EUTOPD ENNES dual etage donnant lea tt taute 61 6 1 1 Principe des options n goci s sur les march s 61 6 1 2 D tail des options europ ennes se sesessesseserssresstssessressesstssresseesesressee 61 6 1 3 Calcul du prix d une option europ enne current 62 6 1 4 Interface graphique du client de l application ssssseseseesseseesesseseesseseee 63 6 2 Utilisation de la plateforme Grid 5000 65 6 2 1 Caract ristiques techniques sen M An ei en este 65 6 2 2 R servation de T SSOUTC AS A Re de ne er dsrienesses 65 6 2 3 D ploi ment d imase Lin este ass ea 67 6 2 4 Probl mes techniques rencontr s s sssssssseeseesesseesseserssressessrssressessressee 67 VIE Implantations ne sn et O E een at ne 69 7 1 Diagramme de d ploiement sur le cluster de Sup lec 69 7 2 Diagramme de classes de l application utilisant PicsouGrid 0 00sseseeseee 69 7 3 Analyse des principales classes de PicsouGrid 71 7 3 1 Classe g n rique Server AT RP nm Re er ne 71 13 2 Classe g n rique SubServer 2 anni he nm nn Diana 81 7 3 3 Classe g n rique Worker sesessesessssessesssseessesseeseesseesessresseesseserssresseser 84 7 3 4 Classe g n rique POOINOGE ne red tele nn cette 84 7 4 Analyse des principales classes de application ss snssssenssese
2. UserServer UserSubServer UserWorker Figure 5 7 Diagramme de classe avec cha nage des classes Effet du d ploiement et de la tol rance aux pannes Lors du d ploiement le Server doit cr er des objets UserSubServer et chaque SubServer doit cr er des objets UserWorkers De plus en cas de panne d une machine h bergeant un Worker le SubServer correspondant est amen recr er un UserWorker De m me en cas de panne d une machine h te d un SubServer le Server est amen recr er un UserSubServer Hors les classes m res ne connaissent pas l avance le nom des classes filles que nous avons appel es UserServer UserSubServer et UserWorker dans notre exemple mais on peut les nommer autrement Le plus simple para t de cr er des Factories dans les classes user la classe SubServer de PicsouGrid appelle la Factory de la classe UserSubServer pour recr er un User Worker De m me la classe Server de PicsouGrid appelle la Factory de la classe UserServer pour recr er un UserSubServer Ainsi les classes de PicsouGrid restent ind pendantes des classes user le d ploiement et la tol rance aux pannes sont trait s par le code de PicsouGrid mais on cr e bien des objets user Il faut seulement une m thode Factory dans les classes user pour cr er la demande des objets user On sp cifie dans les classes de PicsouGrid des m thodes abstraites par exem
3. Workers HT URL HI Figure 5 3 Equilibrage de charge dynamique Un quilibrage de charge statique ente le Server et ses SubServers et entre chaque SubServer et leur Worker est plus efficace lorsque les machines du cluster ou de la grille sont homog nes et lorsque les groupes sont homog nes Mais un cluster ou une grille ne reste pas tr s longtemps homog ne car petit petit certaines machines sont remplac es par de nouvelles plus puissantes l architecture devient alors h t rog ne Un quilibrage de charge dynamique ente le Server et ses SubServers et entre chaque SubServer et leur Worker est plus efficace pour une grille h t rog ne mais aussi pour une grille homog ne car elle ne reste pas longtemps homog ne L utilisation de petites t ches de n simulations pour les Workers est indispensable pour minimiser les surco ts lors de pannes mais demande plus de communication voir section 5 6 L utilisateur choisira donc ce nombre n en fonction des capacit s de son r seau Puisque les t ches sont identiques on peut aussi effectuer un quilibrage de charge dynamique agressif Lorsque l quilibrage n est pas agressif un SubServer ou Server g re le nombre total de t ches l mentaires r aliser il redonne une t che un Worker ayant fini ou un SubServer que s il lui en reste en r serve Donc lorsque le panier de t che est vide les machines les plus rapides attendent que les plus lentes
4. On utilise ContainerString comme objet de retour et non String car ce dernier n est pas r ifiable la classe String poss de l attribut final donc on ne pourrait pas en faire un objet futur Page 23 Grille de calculs et utiliser la communication de groupe La classe ContainerString peut tre crite tr s simplement comme suit classe permettant la cr ation d objets r ifiables de type String public class ContainerString implements Serializable private String string public ContainerString public ContainerString String string this string string public String getString return string Puis dans une autre partie de l application on va d ployer et utiliser des objets actifs de la classe Salut sur un cluster On associe un fichier XML une variable ProActive pad getProactiveDescriptor Ensuite on active la cr ation des n uds distants d finis dans le descripteur de d ploiement pad activateMappings On r cup re le n ud virtuel pad getVirtualNode NoeudSalut qui vient d tre cr On l utilise comme argument pour cr er un groupe d objets actifs ProActiveGroup newGroup un objet actif est cr sur chaque n ud associ au n ud virtuel Dans le descripteur de d ploiement huit n uds sont associ s au n ud virtuel obtenu donc huit objets actifs sont cr s Dans cet exemple on cr e aussi un objet passif et un objet actif en local pui
5. Ces deux probl mes concernant la gestion des groupes ont t transmis l quipe support de ProActive et sont en cours d analyse La d cision de supporter la manipulation des groupes d objets pendant leur utilisation leurs calculs est pos e mais demande r flexion nombreuses implications Les deux probl mes rencontr s par PicsouGrid et pr sent s ci dessus ne devraient tre r solus qu moyen terme 5 8 3 Probl me rencontr entre les generics et ProActive L utilisateur ne doit pas se pr occuper des m canismes de tol rance aux pannes L objectif est de limiter le nombre de m thodes abstraites que l utilisateur doit ensuite d velopper La figure 5 11 nous donne un exemple de diagramme de classe id al petite partie du diagramme complet pour limiter le nombre de m thodes n cessaires au fonctionnement de PicsouGrid que doit d velopper l utilisateur Dans cette exemple il ne doit d velopper que les m thodes stepCalculate et stepSimulate qui r alisent ses calculs generics generics SubServer lt UW gt Server lt USS gt hs lt lt bind gt gt Sub Server lt UserWorker gt Worker Server lt UserSub Server gt calculate simulate setDeblock setDeblock getGroupWorkers setFictif A 1 stepCalculate stepSimulate i 1 0 0 UserSubServer UserWorker
6. Tableau 8 7 Surco ts provoqu s par des pannes option barri re Dans le cas des options barri re les tableaux 8 6 et 8 7 montrent que les surco ts de traitement des pannes apparaissent m me lorsque les JavaSpaces n utilisent pas les transactions Le temps de calcul de chaque t che tant faible 0 7 seconde les JavaSpaces n ont pas le temps d tre r par s avant que les Workers essaient d y acc der et s en trouvent donc ralentis Donc m me en utilisant leurs m canismes natifs de tol rance aux pannes les JavaSpaces peuvent rencontrer des pannes qui entra nent des surco ts surtout si ces JavaSpaces sont souvent sollicit s par de petites t ches de calculs Les Workers ont alors plus de chance d acc der aux JavaSpaces au moment de la panne La tol rance aux pannes peut donc tre rendue de plus en plus robuste en cumulant des m canismes de PicsouGrid et des middlewares sous jacents mais engendrera toujours un surco t lors du traitement d une panne Page 102 Grille de calculs Conclusion et perspectives Architecture con ue et r alis e Durant ce stage d ing nieur nous avons con u et implant une architecture logicielle de grille tol rante aux pannes Cette architecture est hi rarchique pour viter un goulot d tranglement sur un seul serveur Elle est donc compos e d un Server et de SubServers g rant chacun un groupe de Workers La tol rance aux pannes fonctionne gr ce
7. nous avons rencontr des difficult s utiliser les JavaSpaces Sun avec ProActive cause d un probl me li au class loader de ProActive Ce probl me a finalement t r solu par l quipe Oasis qui d veloppe ProActive voir section 5 7 2 Page 26 Grille de calculs IV Introduction aux JavaSpaces 41 Qu est ce qu un JavaSpace Sun Microsystems a impl ment le syst me Jini qui permet la communication de diff rents mat riels au sein d un r seau local afin d offrir des services distribu s aux applications JavaSpace est un service Jini qui permet des entit s distribu es de s changer des objets gr ce un espace commun install sur une machine du r seau Un JavaSpace constitue donc une m moire partag e virtuelle 20 4 2 Fonctionnement Figure 4 1 Les diff rentes op rations sur des JavaSpaces Voici les op rations les plus courantes utilis es avec les JavaSpaces voir Figure 4 1 write d pose un objet dans l espace sp cifi e pour un temps limit le bail lease ou illimit read prend une copie d un objet suivant un template patron l appel est bloquant take prend un objet suivant un template patron l appel est bloquant readIfExists ettakelfExists sont des appels non bloquants notify permet d tre inform lorsqu un objet est enregistr dans un JavaSpace Les objets utilis s avec les JavaSpaces doivent tre s rial
8. results add result nbTaskDone catch Exception e System err println Erreur e getMessage lorsqu un r sultat partiel est envoy au Server celui ci renvoie d autres t ches effectuer if cont nbWorkers 0 int nbPartialJob server setServerPartialResult results numSub if nbPartialJob gt 0 nbTask nbPartialJob UserTask task new UserTask nbMC for int i 0 i lt nbPartialJob i try space write task null Lease FOREVER catch Exception e System err printiln Erreur e getMessage cont en mode ProActive else while nbTaskDone lt nbTask int index groupResultsWorkers waitOneAndGetIndex UserResult result UserResult groupResultsWorkers get index results add result ProxyForGroup groupResultsWorkers set index UserWorker groupWorkers get index simulate un r sultat partiel est envoy au Server qui renvoie de nouvelles t ches if cont nbWorkers 0 amp amp result getNumberSimulations 0 nbTask server setServerPartialResult results numSub if result getNumberSimulations 0 cont nbTaskDone Page 89 Grille de calculs launch false 1es Workers sont stopp s try workers stopWork true catch Exception e return results Au d part si le SubServer est un rempla ant d un SubServer tomb en pa
9. d marrer les services activables Transaction Manager JavaSpace Look up Figure 4 2 Les services Jini n cessaires pour d ployer un JavaSpace lanc s sur une m me ou plusieurs machines La figure 4 2 nous montre comment les services Jini communiquent entre eux Les services Look up JavaSpace et Transaction Manager ont besoin du serveur http leur lancement et pendant leur fonctionnement Les services JavaSpace et Transaction Manager s enregistrent aupr s du service Look up pour permettre tout objet de les utiliser Dans les deux exemples qui suivent voir les sections 4 3 et 4 4 on configure tous les services dans un m me fichier pour pouvoir tous les lancer sur la m me machine mais il est possible de les configurer dans des fichiers diff rents pour les lancer sur des machines diff rentes Dans le premier exemple voir figure 4 3 tous les services sont lanc s gr ce au fichier dans la m me JVM Dans le deuxi me exemple on lance d abord un rmid Tous les services sont aussi param tr s dans un seul fichier voir figure 4 4 mais les services Look up JavaSpace et Transaction Manager sont activables Donc lorsqu on lance les services avec le fichier de configuration seul le serveur http est lanc sur une JVM et rmid lance les trois services activables dans une autre JVM Page 28 Grille de calculs 4 3 Exemple avec des services transients Dans cet exemple nous allons d abord lancer tous les services
10. des difficult s pour d ployer les images Linux sur un grand nombre de machines Au del de 100 machines le syst me de d ploiement kadeploy se bloque souvent et rend inaccessible les machines r serv es Nous sommes donc oblig de d ployer par paquet de 50 machines pour viter ce probl me Mais sur ces 50 machines tr s souvent quelques machines sont en erreur car le d ploiement n a pas pu se faire e De plus pour chaque site le nom de la partition sur lequel le d ploiement doit s effectuer n est pas le m me Le changement de mat riel rend parfois le d ploiement de notre image impossible sans modification de celle ci e Enfin en mode de soumission passif le syst me de r servation pour toute la grille OAR Grid ex cute le script sur chaque cluster sp cifi Hors notre script ne doit s ex cuter que sur une seule machine d un des clusters Page 67 Grille de calculs Ces probl mes rendent difficile l utilisation de nombreuses machines r parties sur plusieurs sites et l automatisation des tests de performance Ces derniers sont donc g n ralement effectu s en interactif et prennent beaucoup de temps En conclusion Grid 5000 est un outil d exp rimentation en vraie grandeur mais qui manque encore de maturit pour r aliser des exp riences grande chelle et multi sites Page 68 Grille de calculs VII Implantation 7 1 Diagramme de d ploiement sur le cluster de Sup lec La figur
11. lt rshProcess gt lt de machine et un protocol d acc s gt lt rshProcess gt lt distance ici rsh gt lt processDefinition gt lt processes gt lt infrastructure gt lt ProActiveDescriptor gt Avec la balise lt componentDefinition gt on commence par d finir un ou plusieurs n uds virtuels auquel on attachera un groupe de n uds cr er lt componentDefinition gt lt virtualNodesDefinition gt lt virtualNode name NoeudSalut property multiple gt lt virtualNodesDefinition gt lt componentDefinition gt La propri t multiple permet d indiquer que plusieurs n uds seront associ s ce n ud virtuel Puis avec la balise lt deployment gt on d finit les machines virtuelles Java associ ce n ud virtuel Jvm1 sur lesquelles un noeud sera cr On associe chaque machine virtuelle un processus s occupant de la connexion une machine et de la cr ation d un n ud rshProcess1 lt deployment gt lt mapping gt lt d finition des JVM associ es aux n uds virtuels gt lt map virtualNode NoeudSalut gt lt jvmSet gt lt vmName value Jvml gt lt vmName value Jvm2 gt lt vmName value Jvm7 gt lt vmName value Jvm8 gt lt jvmSet gt lt map gt lt mapping gt lt jvms gt lt d finition des processus s occupant de la connexion gt lt jvm name Jvml gt lt une machine et de la cr ation d un noeu
12. Donc pour qu un Worker utilise le JavaSpace et le Transaction Manager de son SubServer il faut qu on puisse nommer ces services de mani re unique C est pourquoi ces services sont nomm s lors de leur lancement avec l adresse de la machine h bergeant le SubServer NX Worker Architecture 3 tiers typique i ProActive des applications industrielles K O E ProActive Ge C Worker Worker M moire partag e virtuelle activ e sur demande JavaSpace PC de r serve a CU Figure 5 1 L architecture logicielle _ Page 41 Grille de calculs Enfin les PC de r serve incorpor s dans l architecture logicielle en fonction des besoins r cup ration de panne repr sent s au bas de la figure 5 1 interviennent dans les m canismes de tol rance aux pannes de PicsouGrid et seront introduits la section 5 6 On peut pr voir un nombre de machines de r serve correspondant 2 ou 3 pourcents de l ensemble En g n ral les services informatiques stockent un certain nombre de machines pour des remplacements d urgence 5 4 M canismes de d ploiement de PicsouGrid Serveur de calculs me x JavaSpaces desactives JavaSpaces actives Nombre de SubServers 2 Nombre de Workers 26 Deployer les Workers Detruire les Workers Messages Il a 30 noeuds reellement deployes Il a 2 machines de reserve pour compenser les pannes 13 Workers crees pour un SubServer se t
13. Entre chaque contr le du bon fonctionnement du groupe de SubServers un temps d attente est ex cut gr ce la m thode sleep le nombre de millisecondes d attente est fourni par la variable nbTimeFaultTolerance Cette variable poss de une valeur par d faut de 100 mais peut tre chang e par l utilisateur pour l adapter son r seau gr ce la m thode setNbTimeFaultTolerance int qui v rifie seulement si la valeur fournie n est pas trop faible voir section 5 6 2 7 3 1 6 M thodes utilis es pour la r paration des pannes La m thode createNewSub est utilis e par la m thode run pour remplacer un SubServer en panne cr ation d un nouveau SubServer en cas de panne classe Server public void createNewSub int i demande poolnode d un num ro de n ud de r serve int num poolnode getNode cr ation d un nouveau SubServer avec son objet Alive s il existe un n ud de r serve if num gt 0 try US newSub factorySubServer num Alive newAlive Alive ProActive newActive Alive class getName new Object new ContainerInt i nodes num launchNewSub newSub newAlive i setMessage Un SubServer est cree sur la machine nodes num getNodelnformation getHostName catch Exception e setMessage Erreur lors de la creation de l objet Alive error e else si pas de n ud de r serve cr ation d un nouveau SubServer e
14. SIMDAT grille de donn es permettant le d veloppement de produit utilisant la simulation num rique et la d couverte de connaissance 12 e DataMiningGrid d veloppement d outils et de services data mining pour la grille 13 Le projet europ en EGEE The Enabling Grids for E sciencE a t financ depuis 2004 par la Commission europ enne pour construire une grille bas e sur les derni res technologies et s appuyant sur le r seau GEANT 14 L objectif est de permettre aux scientifiques d utiliser les services de cette grille jour et nuit voir figure 1 8 Operations Management Centre Core Infrastructure Centre Regional Operations Centre 30 MEuros 70 participants 27 pays nabling Grids for E scienc Figure 1 8 Le projet EGEE Le projet europ en DEISA Distributed European Infrastructure for Supercomputing Applications a d but en 2004 pour permettre la cr ation d une grille de production compos e de supercalculateurs pour la recherche scientifique 15 Cette grille s appuie sur des technologies propri taires principalement sur la technologie IBM Global Parallel File System voir figure 1 9 AIX DISTRIBUTED SUPER CLUSTER M LINUX SYSTEMS Figure 1 9 Le projet DEISA Page 12 Grille de calculs Enfin citons le projet fran ais Grid 5000 commenc en 2004 et qui a permis la r alisation d une plateforme de neuf sites reli s par le r seau RENATER ave
15. Une option barri res impose des barri res au dessus ou en dessous desquelles le prix de l actif estim est pris ou non en compte dans le calcul Une option sur panier est bas e sur plusieurs actifs un panier 6 1 4 Interface graphique du client de l application Nous avons d velopp une interface graphique pour le client de l application financi re calculant des options europ ennes simples barri res et sur panier voir figure 6 1 e L utilisateur peut lancer les calculs ou r cup rer des actifs pour remplir le tableau servant aux calculs d options sur panier Le serveur de l architecture se connecte alors une base de donn es MySQL obtient les donn es et les envoie au client Nous avons ainsi test l utilisation d une base de donn es avec notre architecture e L utilisateur peut aussi lui m me modifier ce tableau avant de lancer un calcul d option sur panier e La valeur indiqu e pour le param tre Nombre d actifs de l interface permet de d finir le nombre d actifs utilis s pour le calcul d une option sur panier ou le nombre d actifs r cup rer dans la base de donn es Dans tous les cas le client envoie ses requ tes au serveur PicsouGrid sous la forme de simples sockets TCP implant s en Java Page 63 Grille de calculs Calculs d options europeennes Mel x Option simple Option a barriere Option sur panier Type de barriere Prix de l actif sous jacent 42 Pri
16. UserServer BstepCalculate BistepSimulate Figure 5 11 Diagramme de classe id al Page 57 Grille de calculs Malheureusement suite une incompatibilit entre ProActive et les generics qui n a pas encore t r solue nous obligeons l utilisateur d velopper plus de m thodes que pr vues voir figure 5 12 generics generics Server lt USS gt SubServer lt UW gt A lt lt bind gt gt lt lt bind gt gt Sub Server lt UserWorker gt Worker Server lt UserSub Server gt calculate simulate 1 setDeblock setDeblock etGroupWorkers setFictif 0 UserSubServer UserWorker UserServer calculate imulate setDeblock etDeblock etGroupWorkers etFictif Figure 5 12 Diagramme de classes adapt au probl me La figure 5 12 nous montre que l utilisateur doit tout d abord d velopper les m thodes calculate et simulate qui r alisent et g rent l encha nement de ses calculs mais aussi des m thodes n cessaires au fonctionnement de PicsouGrid setDeblock getGroupWorkers et setFictif Nous allons voir par un exemple comment le probl me entre ProActive et les generics intervient Nous essayons de placer la m thode calculate dans la classe SubServer pour qu elle soit finalement appel e par un objet de
17. doit produire les fichiers de configuration des services Jini en sp cifiant les modes de fonctionnement Ces fichiers sont assez simples cr er le chapitre 4 nous explique comment les param trer pour utiliser les diff rents modes de fonctionnement 5 7 Utilisation des classes generics Java 1 5 5 7 1 Principe des generics Depuis la r cente version 1 5 de Java les generics ont t int gr s au langage Ils ressemblent sous certains aspects aux templates du langage C Les generics permettent de s abstraire du typage Page 50 Grille de calculs des objets lors de la conception et donc de d finir des comportements communs quel que soit le type des objets manipul s polymorphisme param trique de type 23 Par exemple l interface List est d finie de cette mani re public interface List lt T gt void add T t Iterator lt T gt iterator T est ici le param tre de type formel de l interface List On peut donc cr er des listes avec des objets de types diff rents sans avoir crire de code pour chaque type d objet List lt String gt 11 new ArrayList lt String gt List lt Integer gt 12 new ArrayList lt Integer gt Les templates et les generics sont toutefois diff rents car il n y a pas de multiples copies du code en fonction du type ni en m moire ni dans les sources ni dans le bytecode g n r Un generics est compil une fois pour toute en une unique c
18. duites La qualit du g n rateur de nombres al atoires est un probl me crucial dans les calculs financiers qui se complexifie encore dans le cas d un g n rateur de nombres al atoires en parall le Mais ce probl me est hors du sujet de ce m moire et est analys par les quipes de math matiques financi res du projet ANR La m thode de Monte Carlo permet d approcher l esp rance math matique de la formule 1 pour le calcul de la prime en effectuant une moyenne d un nombre fini de r alisations al atoires ind pendantes du prix de l actif nbMC nombre de simulations de Monte Carlo nbMC E exp rT max S T K 0 DMC DE exp rT max S T i K 0 3 i l S T i correspond au prix de l actif la date T calcul avec la formule 2 pour chaque simulation de Monte Carlo Cette m thode a t choisie pour calculer les prix des options car elle permet facilement de distribuer les calculs sur un grand nombre de machines Il suffit de r partir le nombre de simulations de Monte Carlo sur les PC en supposant les g n rateurs de nombres al atoires ind pendants Pour tester notre architecture nous avons d velopp une application effectuant des calculs d options europ ennes simples que nous venons d expliquer mais aussi des calculs d options barri res et d options sur panier Les calculs d options barri res et sur panier utilisent les m mes formules de base que ceux de l option simple
19. g n riques et d objets actifs la partie syst me de l architecture et l utilisateur d veloppe un ensemble de classes exploitant des bases de donn es et r alisant des calculs la partie utilisateur de l architecture Par un simple m canisme d h ritage les classes utilisateurs r cup rent les fonctionnalit s des classes syst mes et les calculs de l utilisateur se retrouvent distribu s sur une grille tol rante aux pannes De plus en d veloppant quelques m canismes de checkpointing et de reprise sur erreur au niveau applicatif les calculs utilisateurs b n ficient d un plus faible surco t lors d une r cup ration sur panne 5 2 Cons quences des conditions d exploitation en salle de march Les traders commerciaux financiers dans les salles de march sont soumis de fortes pressions c est pourquoi ils sont tr s sensibles la fa on dont les applications fonctionnent En ce qui concerne les applications effectuant les calculs de risque les traders s attendent ce que les r sultats obtenus soient rigoureusement identiques lorsqu ils relancent plusieurs fois les m mes calculs Il faut donc effectuer un nombre suffisant de simulations pour atteindre cet objectif ou utiliser la m me suite de nombres al atoires voir section 6 1 De plus dans les m mes conditions de calcul l application doit fournir un r sultat avec un temps de calcul quasiment identique m me en cas de panne pour que les tra
20. la compilation sans nuire la g n ralisation des classes de PicsouGrid et sans apporter de contraintes sur le nom des classes user Les Factories sont encore n cessaires car une limitation des classes generics de Java 1 5 est qu elles ne peuvent pas cr er d objet de la classe param tr e Par exemple dans la classe Server on ne peut cr er d objet de type USS Seule la classe fille UserServer de Server peut cr er des objets de type UserSubServer car elle en conna t le nom Maintenant les factory sont typ es plus fortement Elles attendent la cr ation d objets de type UserWorker et UserSubServer et non pas d objets d un autre type de classe h ritant de Worker et SubServer Il n est donc plus possible de cr er des objets calculant les prix des options am ricaines la place des options europ ennes par exemple Une fois la compilation accept e le nombre d erreur pourra tre plus faible avec cette implantation g n rique De plus les objets tant de type USS donc UserSubServer et de type UW donc UserWorker l utilisateur peut d velopper des m thodes suppl mentaires ceux impos es par PicsouGrid et les utiliser sur ces objets Nous verrons la section 5 8 3 que des probl mes momentan es de compatibilit entre la version actuelle de ProActive et les generics nous ont amen d grader un peu notre architecture logicielle en attendant une volution de ProActive d veloppement en cours
21. ooinode PoolNode ener Sener trol Thread ctorLiving Vector lt Living gt pace JavaSpace ddress bWorkers int mpte int bTimeFaultTolerance int KControl boolean nSpace boolean jetOkControl tartControl topControl n etNbTimeFaultTolerance jetGroupALives etLostWorkers reateWorkerDeblock etSub ServerPartialResult etDatalnitiate launchdini etini jookupAddress Sting pace JavaSpace indJavaSpace indTransaction etDeblock etFictif topWork init imulate Partie PicsouGrid Data Init erver Server BconnectServer UserSubServer bMC int zint top boolean leblock boolean launch boolean recup boolean artial UserResult jorkini Userinit rocess0 Process rocess 1 Process tmt Statement Partie application nnectDB jetBasket UserWorker unSpace boolean top boolean leblock boolean cif boolean trike double ux double igma double double isteActif doublef isteVolatiite double isteCorrelation double angulairelnferieure double dom Random leaserenew Leaserenewr UserwWorker etDeblock etFictif topWork init imulate ptionSimple UserTask o Simulatons Integer prionBarrie
22. option Ces deux situations se r sument dans une formule dont le r sultat est appel le payoff du call europ en max 0 S T K Le payoff repr sente donc la perte subie par le trader la date de maturit qu il doit compenser par le prix de vente de l option son client t 0 Un call est une sorte d assurance contre une augmentation sup rieur K du prix de l actif pour celui qui ach te une option Sym triquement le d tenteur d un put d cide g n ralement de vendre au trader l actif la date T si le prix K fix t 0 est sup rieur au prix de march S T Il fait une conomie de K S T perte pour le trader si K est sup rieur S T sinon il ne vend pas l actif au trader On peut donc aussi r sumer ces deux situation par la formule du payoff du put europ en max 0 K S T Un Page 61 Grille de calculs put est une assurance contre une diminution inf rieure K du prix de l actif pour celui qui ach te l option Par exemple un client ach te aupr s d un trader un call lui donnant le droit d acheter une action x au prix K de 45 dans un an A la signature du contrat le prix de l action x sur le march est de 44 Un an plus tard l action x est cot e sur le march 48 Donc le client exerce son option en achetant au trader l action x au prix de 45 Le client fait une conomie de 3 le payoff qui sont perdus pour le trader On comprend donc que le
23. pad getVirtualNode getNameVirtualNode nodeGrid activate j nbProcesseurs nodeGrid getNumberOfCreatedNodesAfterDeployment setMessage IL y a nbProcesseurs noeuds reellement deployes nodes nodeGrid getNodes catch Exception e setMessage Erreur lors du deploiement des noeuds error e Page 72 Grille de calculs e La m thode startThreadSocket permet de cr er un thread pour couter les requ tes des clients voulant utiliser le Server Ensuite un objet actif de type PoolNode est cr et enregistr e La m thode connectServer est ex cut e pour obtenir une r f rence sur l objet actif server et utiliser sa m thode d affichage de messages sur l interface graphique e Les m thodes getProactiveDescriptor et activate de ProActive permettent de d ployer les n uds du fichier XML que doit fournir la m thode getAddressFileDescriptor m thode abstraite appartenant la classe fille voir section 3 7 La m thode getNameVirtualNode m thode abstraite de la classe fille permet d obtenir le nom du n ud virtuel indiqu dans le fichier XML La m thode getNumberOfCreatedNodesAfterDeployment de ProActive permet d obtenir le nombre de n uds qui ont r ellement t cr s car certaines machines indiqu es dans le fichier XML peuvent tre indisponibles au moment du d ploiement des n uds La m thode getNodes de ProActive permet enfin d obtenir le table
24. r cup ration sur panne Conception d algorithmes distribu s de calculs de risques pour acc l rer ces calculs et traiter de plus gros volumes de donn es tout en tol rant les pannes Implantation de cette architecture logicielle et de ces algorithmes distribu s en utilisant des m canismes templates pour permettre de sp cialiser facilement l architecture tout type d application Exp rimentation de cette architecture logicielle sur un syst me distribu large chelle Deux types d environnement de programmation distribu e sous Java ont t exp riment s et utilis s un environnement base d envoi de messages entre objets actifs ProActive et un autre base de partage de donn es au sein d un espace d adressage partag virtuel JavaSpaces Dans les deux cas de nombreuses exp rimentations ont eu lieu sur diverses architectures distribu es cluster de PC homog ne et grille de PC multi sites Les calculs de risques choisis pour tre distribu s sont des algorithmes l mentaires de pricing Ils permettent de fixer le prix d une transaction d une option en fonction de son risque propre 2 3 Choix de l environnement de d veloppement D s le d but du projet nous avons r fl chi au choix d un langage de d veloppement C Java ou Python Le langage C ou C est tr s rapide mais il n est pas portable Python est tr s portable mais il n est associ aucun middleware de
25. re ses donn es sur le disque de la machine h te Un JavaSpace ne peut pas sauvegarder ses donn es sur un autre disque mais il peut le faire sur le r pertoire du compte utilisateur et s il est mont par NFS le nouveau JavaSpace lanc sur une machine de r serve pourrait r cup rer les donn es de l ancien JavaSpace Comme nous lan ons plusieurs JavaSpaces un pour chaque SubServer chaque JavaSpace doit utiliser un nom de r pertoire de stockage diff rent des autres Sinon le montage NFS m nerait tous les JavaSpaces utiliser le m me r pertoire ce qui provoquerait des conflits De plus en cas de traitement de panne il faudrait que le nouveau JavaSpace se lance avec le m me nom de r pertoire que l ancien JavaSpace Tout cela demande donc un d veloppement sp cifique non encore r alis pour sauvegarder les donn es sur un disque distant et se prot ger contre une panne de la machine h te Pour l instant nos JavaSpaces sauvegardent leurs donn es sur les disques de leurs machines h tes Un m canisme de transaction des JavaSpaces permet encore d am liorer la tol rance aux pannes mais demande une contribution au niveau applicatif Lorsqu un Worker tombe en panne pendant un calcul la t che prise dans le JavaSpace n est pas ex cut e et est donc perdue Cela entra ne un blocage du SubServer car il attend toujours le r sultat de la derni re t che qui n est pas ex cut e Page 49 Grille de calculs Pour r
26. sultat de l ancien SubServer gr ce la m thode set 7 3 1 7 La m thode createServerSocket La m thode createServerSocket est utilis e par un thread pour cr er un serveur de Socket coutant les demandes de connexion des clients cr ation d un serveur de Socket classe Server public void createServerSocket nbPortSocket getPortSocket int nbConnexions 50 ServerSocket ecoute null Socket service null cr ation d un serveur de Socket try ecoute new ServerSocket nbPortSocket nbConnexions catch Exception e setMessage Erreur lors de la creation de la socket serveur d ecoute error e while true coute sur le port d une connexion try service ecoute accept catch Exception e setMessage Erreur lors de l acceptation de la socket error e Page 79 Grille de calculs si serviceEnd est vraie sortie du mode d coute if serviceEnd break si un client se connecte le Socket est trait par une m thode d finie dans la classe fille executeSocket service try service close ecoute close j System out println La socket serveur se ferme catch Exception e System out printin Erreur lors de la fermeture de la socket serveur ecoute error e Un serveur de Socket est cr pour tre l coute d une demande de connexion d un client sur le port d fini par l utilisa
27. une r f rence sur l objet actif server gr ce la m thode lookupActive de ProActive et peut utiliser ses m thodes voir section 3 4 4 Le bouton D ployer les Workers d clenche un appel de la m thode startDeploy du Server startDeploy 1 partie public boolean startDeploy int numSubServers int numWorkers boolean runsSpace this runSpace runSpace this nbSubServers numSubServers this nbWorkers numWorkers boolean okDeploy true startThreadSocket cr ation d un thread d coute des clients try cr ation et enregistrement de l objet actif poolnode poolnode PoolNode ProActive newActive PoolNode class getName new ObjectI catch Exception e setMessage Erreur lors de la creation de l objet PoolNode error e try ProActive register poolnode localhost poolnode catch IOException e setMessage Erreur lors de l enregistrement de l objet PoolNode error e obtention et stockage d une r f rence de l objet actif server pour un usage ult rieure Data connectServer poolnode connectServer try localhost InetAddress getLocalHost getHostName catch UnknownHostException e setMessage Erreur pour obtenir l adresse locale error e d ploiement avec le fichier XML et obtention des noeuds try pad ProActive getProactiveDescriptor getAddressFileDescriptor VirtualNode nodeGrid
28. voir section 5 6 En retour le Server leur envoie de nouvelles t ches en fonction du nombre de Workers Les SubServers les plus rapides envoient plus souvent des r sultats partiels et re oivent donc plus de t ches Les SubServers finissent donc tous peut pr t en m me temps mais certains ont r alis plus de t ches que d autres Cet quilibrage de charge dynamique peut facilement devenir agressif Il suffit de relancer les SubServers retournant un r sultat final puis d arr ter les SubServers et leurs Workers d s que l on a accumul assez de r sultats simulations de Monte Carlo 5 6 M canismes de tol rance aux pannes 5 6 1 Strat gie collaboration multi niveaux La figure 5 4 nous montre que l application utilisant PicsouGrid se divise en 3 couches poss dant chacune des m canismes de tol rance aux pannes qui collaborent Notre objectif est de limiter les pertes de temps pendant un calcul lorsque se produit une panne et de ne pas arr ter le reste du syst me pendant la r paration de cette panne L architecture doit pouvoir continuer fonctionner normalement malgr des pannes ponctuelles et en mode d grad malgr des pannes r p t es ou malgr la disparition d un grand nombre de machines par exemple suite la coupure d une partie du r seau Les m canismes applicatifs de tol rance aux pannes ont l avantage de permettre une r cup ration sur panne plus pr cise que les m canismes existant dan
29. 10 15 6 Workers 60 8s 69 55 9 1s 17 85 1 SubServer 54 4s 63 85 2 7s 12 15 2 SubServers 56 35 65 95 4 6s 14 25 3 SubServers 57 8s 69 4s 6 15 17 75 Tableau 8 2 Surco ts provoqu s par des pannes pendant le calcul d une option sur panier L analyse de ces r sultats est faite la section 8 3 3 8 3 2 Mesures de performance sur un petit cluster en mode JavaSpace Nous avons test la tol rance aux pannes de PicsouGrid en utilisant les JavaSpaces non activables et non persistants pour la communication entre les SubServers et leurs groupes La configuration est la m me que celle d crite la section 8 3 1 voir tableaux 8 3 et 8 4 Le temps de calcul de l option barri re effectu avec 100 millions de simulations est de 40 1 secondes lorsque aucune panne ne se produit Les t ches sont compos es de 100 000 simulations et le temps de calcul d une t che est de 0 7 seconde Le temps de calcul de l option sur panier effectu avec seulement 10 millions de simulations est de 50 2 secondes lorsque aucune panne ne se produit Les t ches sont compos es de 100 000 simulations et le temps de calcul d une t che est de 8 4 secondes La section 8 3 1 explique pourquoi nous utilisons seulement 10 millions de simulations pour l option sur panier Pannes simultan es Temps minimum Temps maximum Surco ts sans panne 40 1s 1 Worker 40 25 40 4s 0 1s 0 3s 2 Workers 40 3s 40 7
30. 3 2 Installation et utilisation de ProActive s ssesnesseesseesseseosseesresresseesseserssressesess 17 3 3 Concept d objet Actif et d objet Futur ss 17 34 Cr ation d un objet ACTE usines an aa a indien asia 18 3 4 1 Cr ation l INSA tons este ns nr nt nc nest 18 3 4 2 Cr ation partir d un objet EXISTANT sean in nt tes 19 3 4 3 Sp cification des n uds d accueil des objets actifs ss sssssssssesseseess000 19 3 44 Enregistrement des objets actifs 44haussrnmebhe lasse iles 19 3 5 Concept de groupe d objets asian hante Hnais 20 3 6 M canisme de d DIDI MENT SE nee ne anne 20 3 7 Exemple de d ploiement d objets ProActive sssssssssesessseessesessseesseseesssessessees 23 3 8 BR inanan a e A i a AA A A E A 26 IV Introduction aux JavaSpaces 27 4 1 Qu estce quun AV ASDACS NN ar TE AEE E E 27 42 E ctonniement ss EN en Dors nd du nets 27 43 Exemple avec des services transients 44m inertie 29 4 4 Exemple avec des services persistants activables et des transactions 32 4Sa BA ns ne ee en a en E a ne nd en en 39 V Architecture logicielle du projet 40 5 1 Principaux concepts de l architecture logicielle PicsouGrid 0 0010sese0sess 40 Grille de calculs 5 2 Cons quences des conditions d exploitation en salle de march 40 5 3 Description de l archit
31. 4 2 Cr ation partir d un objet existant Il est aussi possible de rendre actif un objet passif gr ce la m thode turnActive A a new A 26 essai a A ProActive turnActivel a 3 4 3 Sp cification des n uds d accueil des objets actifs Dans les deux m thodes de cr ation d objets actifs que nous venons de d crire nous n avons pr cis aucune adresse de machine les objets ont t cr s localement Cependant il est possible d ajouter un argument pr cisant une adresse de machine d accueil une adresse de noeud e Un n ud doit contenir les services n cessaires au bon fonctionnement de ProActive comme ceux permettant le dialogue entre la machine virtuelle locale et celle o se trouve l objet actif e Une adresse de n ud est identifi e par le protocole utilis par exemple RMI l URL de la machine et un nom de n ud Exemple A A ProActive newActive A class getName params rmi sh04 metz supelec fr aNode En fait le noeud sp cifi doit d abord exister pour que l on puisse y installer un objet actif En pratique on cr e des noeuds avec un descripteur de d ploiement voir section 3 6 On obtient ainsi des objets n ud que l on passe en param tre lors de la cr ation des objets On peut ensuite faire des appels de m thodes sur les objets distants comme s ils taient locaux 3 4 4 Enregistrement des objets actifs Un objet actif cr p
32. Jini JavaSpaces Lorsque nous avons utilis pour la premi re fois Jini JavaSpaces avec ProActive le syst me s est bloqu d s qu un objet actif voulait acc der aux services Jini et a indiqu une erreur en rapport avec le m canisme de class loader Nous avons transmis ce probl me technique l quipe support de ProActive en mars 2006 Une solution r solvant l incompatibilit avec Jini JavaSpaces nous a t envoy e fin juillet 2006 et incorpor e dans les nouvelles versions de ProActive Le serveur de classes de ProActive a ainsi t modifi pour comprendre une requ te http envoy e par le class loader de Jini Cependant en mars 2006 nous ne savions pas quand une solution nous serait propos e et nous voulions exp rimenter les JavaSpaces depuis notre architecture PicsouGrid le plus vite possible Nous avons donc tudi le probl me Nous avons d couvert que l erreur se produisait quand on utilisait ProActive et qu ensuite on acc dait aux services Jini Par contre lorsqu un objet non ProActive utilisait d abord les services Jini puis seulement lorsqu il en avait fini cr ait une r f rence un objet ProActive alors le syst me ne se bloquait pas Nous avons donc trouv une solution temporaire en lan ant les objets utilisant les JavaSpaces sur une JVM diff rente du syst me bas sur ProActive voir figure 5 10 Mais cette solution base de plusieurs JVM a compliqu le code Dans cette solution le SubS
33. Page 54 Grille de calculs 5 7 3 Autre solution sans les generics Il existe une autre m thode pour rendre des classes g n riques en utilisant les noms des classes utilisateurs et en exploitant les capacit s de programmation dynamique de Java Par exemple on peut utiliser les m thodes forName et newlnstance de Class La classe Server contiendrait alors la m thode startServer suivante public void startServer String nameServer try Class w Class forName nameServer Server serveur Server w newInstance Server server Server ProActive turnActive serveur catch Exception e error e Dans la classe UserServer on lancerait startServer UserServer pour donner le nom de la classe M me si serveur est d clar comme Server c est r ellement un UserServer qui serait cr Comme nous l avons d j dit nous avons choisi les generics car la v rification des erreurs est faite au moment de la compilation Avec Class forName le compilateur ne d tectera pas si le nameServer est valide cela ne sera v rifi qu l ex cution la m thode startServer peut tre lanc e avec un nom qui peut ne correspondre aucune classe et g n rer une erreur Nous laissons donc de c t cette derni re m thode bas e sur la programmation dynamique de Java et poursuivons avec les generics 5 8 Bilan des difficult s techniques rencontr es 5 8 1 Probl me r solu entre ProActive et
34. cas de panne leur entr e dans le syst me entra ne un surco t limit et les temps d ex cution des calculs suivants redeviennent normaux 5 6 2 M canismes au niveau de PicsouGrid La figure 5 5 nous pr sente les m canismes d velopp s au niveau de PicsouGrid qui fonctionnent en utilisant ProActive et qui restent les m mes lorsqu on active les JavaSpaces Ces m canismes traitent essentiellement les pannes de machines plut t que des pannes de processus La disparition de machines est un probl me fr quent sur les grilles que nous traitons en incluant de mani re contr l e des PC de r serve alors que les pannes de processus sont plus facilement d tectables et r parables par les middlewares Une partie des m canismes de tol rance aux pannes implant s au niveau de PicsouGrid repose sur le d ploiement d objets actifs de ProActive voir section 3 3 que l on peut interroger tout moment pour savoir si eux m mes et donc leurs machines h tes sont vivantes objets actifs Alive Au moment du d ploiement du syst me chaque objet actif SubServer et Worker est cr sur une machine en compagnie d un objet actif Alive Le Server fait r guli rement un appel de m thode sur les objets Alive h berg s avec les SubServers Si l appel sur un objet Alive ne peut se faire le Server consid re que le PC contenant cet objet est en panne et le SubServer associ est consid r perdu et devant tre remplac S il e
35. catch Exception e setMessage Erreur lors de la creation du flux de sortie de la socket error e le client envoie les donn es n cessaires aux calculs try newSimulation Boolean parseBoolean in readLine if newSimulation typeCalcul Integer parseInt in readLine les calculs sont ex cut s dans la m thode simulate result simulate demande d informations la base de donn es else nbActifs Integer parselInt in readLine listeActif new double nbActifs listeVolatilite new double nbActifs listeCorrelation new double nbActifs UserInit basket UserData getBasket nbActifs listeActif basket getListeActif listeVolatilite basket getListeVolatilite listeCorrelation basket getListeCorrelation catch Exception e setMessage Erreur lors de la reception des demandes de la socket client ou du traitement error e try r sultats des calculs envoy s au client if newSimulation out println Integer toString result getNumberSimulations out println Double toString put out println Double toString call out println Double toString trustMin out println Double toString trustMax r sultats de la base de donn es envoy s au client else for int i 0 i lt nbActifs i out println Double toString listeActif il for int i 0 i lt nbActifs i out println Double toString listeVolatili
36. d option projet de fin d tude l INRIA Sophia Antipolis avril 2006 John Hull Options futures et autres actifs d riv s Pearson Education 2004 Grid 5000 Cluster experiment Grid experiment 2006 https www gridS5000 fr mediawiki index php Virginie Galtier Mon mode d emploi pour grid5000 Sup lec 2006 Tom Penders Introduction UML OEM Paris 2002 Page 105 Grille de calculs e Conception et implantation d une grille de calculs de risques tol rante aux pannes e Design and implementation of a fault tolerant risk computation grid Les grilles sont de plus en plus utilis es pour distribuer efficacement des calculs et diminuer ainsi les temps de traitement ou augmenter la quantit de donn es trait es Mais les grilles actuelles g rent la tol rance aux pannes sans s inqui ter des surco ts importants engendr s au niveau des temps de calculs Nous avons donc con u et implant une architecture logicielle de grille hi rarchique et tol rante aux pannes limitant les surco ts de d tection et de r paration des pannes Les communications peuvent tre r alis es par envoi de messages gr ce ProActive ou par m moire partag e virtuelle gr ce aux JavaSpaces Notre architecture PicsouGrid est aussi g n rique pour permettre tout type d application de b n ficier de ces fonctionnalit s d ploiement sur un ensemble de machines distribution des calculs et tol rance aux pannes Des mesures de
37. et les Workers les retirent et les ex cutent tout simplement au fur et mesure Page 45 Grille de calculs Entre le Server et ses SubServers communicant seulement en ProActive nous avons dans un premier temps r alis un quilibrage de charge statique Ensuite nous avons am lior l application pour qu elle s adapte des environnements h t rog nes en d veloppant un quilibrage de charge dynamique tout en prenant en compte les tailles des diff rents groupes de Workers Le Server poss de un ensemble de t ches r aliser il les distribue aux SubServers par tape Au d part il leur attribue un premier paquet de t ches et en ensuite il leur en fournit en fonction de leur rapidit Il distribue donc d abord aux SubServers un nombre de t ches multiple du nombre de Workers de chaque groupe Par exemple si on veut d ployer 25 Workers et 3 SubServers les 2 premiers SubServers auront 8 Workers chacun par contre le dernier aura 9 Workers Les groupes seront h t rog nes Mais avec notre m thode de r partition de charge le groupe de 9 Workers aura plus de t ches que les 2 autres c est dire un multiple de 9 et les 2 autres auront un multiple de 8 Ensuite le Server tire profite du checkpointing pour distribuer les t ches restantes Les SubServers envoient des r sultats partiels checkpointing au Server chaque fois que tous leurs Workers ont r alis chacun une t che utilis dans la tol rance aux pannes
38. finissent leur derni re t che Lorsque l quilibrage est agressif il redonne sans arr t des t ches aux Workers ou SubServers jusqu ce qu il ait collect le nombre de t ches demand es Ensuite il stoppe les Workers qui continuaient traiter une t che Cette strat gie demande un peu plus de communication et consomme un peu de CPU pour rien mais permet d utiliser pleinement les machines les plus puissantes et d aboutir plus vite 5 5 2 Exemple de mise en oeuvre Dans l application utilisant PicsouGrid que nous avons d velopp e voir section 6 1 nous avons utilis les deux paradigmes communication par RMI ou par m moire partag e virtuelle entre les SubServers et leurs Workers pour implanter de deux fa ons les m mes calculs et valuer les deux d marches Dans la version utilisant RMI et ProActive pour r partir les t ches et r cup rer les r sultas nous avons implant un quilibrage de charge dynamique agressif entre un SubServer et son groupe de Workers pour le rendre plus tol rant aux pannes Cette implantation rend l application plus rapide sur un ensemble de PC h t rog nes et s est av r e simple r aliser en ProActive Dans la version utilisant le partage de m moire et les JavaSpaces pour r partir les t ches et r cup rer les r sultats nous avons facilement d velopp un quilibrage de charge dynamique entre le SubServer et ses Workers le SubServer place les t ches dans le JavaSpace
39. grille Nous choi sissons donc de d velopper une solution dans le langage de programmation Java pour b n ficier de sa portabilit sur des architectures h t rog nes et pour sa popularit dans le milieu bancaire Java est moins rapide mais il peut utiliser du code crit en C gr ce JNI De plus il est utilis par des middlewares de grille comme ProActive et Jini JavaSpaces Page 16 Grille de calculs III Introduction ProActive 3 1 Qu est ce que ProActive ProActive est un environnement de d veloppement sur grille se pr sentant sous la forme d une biblioth que Java permettant la programmation de calculs parall les distribu s et concurrents Il est aussi un middleware de grille Cette biblioth que a t d velopp e par l INRIA de Sophia Antipolis dans le but de fournir une API compl te simplifiant la programmation d applications distribu es sur le r seau local sur un cluster ou sur des grilles ProActive est construit avec des classes Java standards et n exige donc aucun changement de la machine virtuelle il utilise cependant un class loader sp cifique Il utilise actuellement la biblioth que Java RMI en tant que couche de transport par d faut ProActive est open Source et s inclut dans la communaut ObjectWeb On peut l obtenir avec une documentation d taill e sur le site Web suivant http www sop inria fr oasis ProActive 3 2 Installation et utilisation de ProActive Pour pouvoir utili
40. la collaboration de m canismes int gr s au niveau applicatif au niveau de PicsouGrid et au niveau du middleware Jini JavaSpaces Les communications peuvent tre r alis es par envoi de messages gr ce ProActive ou par m moire partag virtuelle gr ce aux JavaSpaces Les deux paradigmes sont mis la disposition des utilisateurs pour leur permettre d utiliser celui qui s adaptera le mieux leurs calculs PicsouGrid est aussi g n rique ainsi les utilisateurs d veloppent leurs propres classes de calculs et par un simple m canisme d h ritage et de classes generics de Java 1 5 leur application peut tre rapidement d ploy e sur un cluster ou une grille multi sites Leurs calculs sont alors distribu s sur l ensemble des machines et le syst me est tol rant aux pannes Les utilisateurs doivent n anmoins d velopper certaines m thodes impos es pour b n ficier de ces fonctionnalit s R sultats d exp rimentation Nous avons galement d velopp une application calculant des options europ ennes pour exp rimenter l architecture PicsouGrid Nous avons mesur ses performances sur un cluster et sur une grille multi sites Grid 5000 La taille des t ches attribu es aux Workers influence l efficacit du syst me car plus les t ches sont importantes et plus le nombre de communication diminue donc plus le Speed up augmente Par contre les t ches ne doivent pas tre trop importantes pour r aliser un quilib
41. le calcul d une option barri re et d une option sur panier Nous utilisons le cluster de Metz compos de 32 machines L architecture se compose du Server de 3 SubServers et de 18 Workers donc chaque SubServer g re 6 Workers Puisque 22 machines sont utilis es par PicsouGrid il reste 10 machines de r serve pour compenser les pannes Dans cette exp rience nous utilisons beaucoup de machines de r serve pour tester des pannes importantes mais dans une configuration standard nous conseillons d utiliser seulement 2 3 des machines pour r parer les pannes Le temps de calcul de l option barri re effectu avec 100 millions de simulations est de 43 secondes lorsque aucune panne ne se produit Les t ches sont compos es de 100 000 simulations et le temps de calcul d une t che est de 0 7 seconde Le temps de calcul de l option sur panier avec 4 actifs effectu avec 10 millions de simulations est de 51 7 secondes lorsque aucune panne ne se produit Les t ches sont compos es de 100 000 simulations et le temps de calcul d une t che est de 8 4 secondes Le calcul de l option sur panier prend plus de temps que le calcul de l option barri re car l option sur panier utilise plusieurs actifs Nous avons limit le nombre de simulations pour le calcul de l option sur panier 10 millions contre 100 millions pour l option barri re pour r duire le temps n cessaire aux tests Pendant une m me p riode
42. les transactions if stateSpace gt 1 Transaction Created transFac null Transaction transaction null leaserenew null TransactionManager transMng findTransaction UserTask template new UserTask while true try transFac TransactionFactory create transMng 1000 transaction transFac transaction catch Exception e System err println Erreur e getMessage leaserenew new Leaserenew transFac lease leaserenew start UserTask task null r cup ration des t ches s il y en a try task UserTask space takeIfExists template transaction 0 catch Exception e System err println Erreur e getMessage if task null leaserenew null try transaction commit catch Exception e System err printiln Erreur e getMessage break nbMC task nbSimulations intValue calculs effectu s if typeCalcul 1 result optionSimple criture des r sultats try space write result transaction Lease FOREVER transaction commit catch Exception e System err println Erreur e getMessage en mode ProActive else if typeCalcul 1 result optionSimple return result Page 91 Grille de calculs Les calculs peuvent tre effectu s en mode ProActive ou en mode JavaSpace avec ou sans les transactions Pour les transactions un objet de type Leaserenew est utilis pour reno
43. leurs ressources 7 voir figure 1 6 Page 10 Grille de calculs Total Jobs per VO DE eee A Pa A Ar 4 3 p JAS gN t A g Onpa j hich 7 Men vou PRE Ww 4 k au y ek h nt _ ta AnnaL D ati se M Omu mt ne HS un Arya L 4 S La Y Sn oct 16 15 31 55 GW 20 Figure 1 6 Le projet Open Science Grid Le projet japonais NAREGI National Research Grid Initiative 8 s est donn depuis 2003 plusieurs objectifs voir figure 1 7 e am lioration des couches r seaux pour les grilles conception d un middleware de grille conception d application mise en place d un testbed exp rimentations et mesures de performances Construction of a Testbed of Heterogeneous Environments for the Verification of Grid System Development TiTech Campus Grid 3000 CPUs 17Tflops Figure 1 7 Le projet NAREGI L Union europ enne a incit la recherche sur les grilles dans le 6 Programme Cadre de Recherche et de D veloppement PCRD 2002 2006 On peut citer quelques exemples de projets financ s par ce programme e UniGrids grille associant OGSA et UNICORE pour des applications scientifiques et industrielles 9 e Akogrimo grille de mobiles avec des services distribu s pour g rer des organisations virtuelles 10 Page 11 Grille de calculs e HPCAU un middleware de grille pour clusters apportant une qualit de service 11
44. m thode calculate est ex cut e sur le groupe de SubServers La m thode waitOneAndGetIndex de ProActive permet d obtenir l indice d un r sultat arriv e dans le groupe de r sultat La m thode stopSub permet de stopper les calculs des SubServers 7 4 2 Classe UserSubServer La m thode calculate permet de lancer les calculs sur les Workers et de r cup rer les r sultats traitement des calculs classe UserSubServer public UserResult calculate stop false UserResult results si c est un nouveau SubServer il r cup re le r sultat partiel if recup results partial recup false else results new UserResult 0 0 0 0 0 si le syst m st en mode JavaSpace les t ches sont mises dans le JavaSpace if runSpace UserTask task new UserTask nbMC for int i 0 i lt nbTask i try space write task null Lease FOREVER catch Exception e System err println Erreur e getMessage les calculs sont lanc s sur les Workers groupResultsWorkers ProActiveGroup getGroup workers simulate int cont 1 Page 88 Grille de calculs int nbTaskDone 0 launch true en mode JavaSpace le SubServer attend l arriv e d un r sultat if runSpace UserResult template new UserResult while nbTaskDone lt nbTask try UserResult result UserResult space take template null Long MAX VALUE
45. objet actif le r sultat final voir section 3 4 4 Enfin le SubServer r cup re le r sultat du SpaceSubServer SpaceCalculate SubServer SpaceSubServer C a objet actif JVM objet classique Figue 5 10 Solution temporaire pour utiliser Jini JavaSpace avec ProActive Fort heureusement cette solution complexe n est plus n cessaire Elle nous a permis de d ployer des m moires partag es virtuelles dans PicsouGrid d s mai 2006 mais a consomm plusieurs semaines de d veloppement 5 8 2 Probl mes rencontr s avec les groupes de ProActive ProActive n a pas t con u pour permettre la manipulation d un groupe pendant qu il travaille Cette conception para t logique mais nous emp che de bien r aliser une r paration des pannes au cours des calculs ce qui est pourtant primordiale pour limiter les surco ts r paration chaud Premier probl me Lorsque nous avons simul la destruction du groupe complet de SubServers ou du groupe complet de Workers pendant des calculs le syst me recr ait le groupe avec les machines de r serve comme pr vu Mais le Server ou le SubServer ne recevait plus de r sultat Par contre s il restait au moins un membre du groupe de d part le Server recevait bien les r sultats des nouvelles machines En fait lorsqu on lance une m thode de groupe sur les SubServers le Server cr e un groupe de r sultat compos d objets futurs en attendant les r ponses voir
46. objet de type UserWorker pour g rer la tol rance aux pannes mais si elle est plac e dans la classe m re ProActive cr e un Stub de type Worker Donc elle est plac e dans la classe fille Le probl me est l tude au sein de l quipe d veloppant ProActive Les generics seront donc support s pleinement par ProActive court terme Page 60 Grille de calculs VI Plateforme d exp rimentation et exemple d application 6 1 Les options europ ennes 6 1 1 Principe des options n goci s sur les march s Nous avons d cid d exp rimenter notre architecture PicsouGrid en d veloppant une application financi re utilisant notre syst me Nous avons tir profit du travail de deux tudiants en math matiques financi res et de l quipe Omega INRIA Sophia Antipolis qui ont con u des algorithmes de calculs distribu s d options europ ennes dans le cadre de notre projet ANR 26 Dans une salle de march des titres financiers sont chang s comme par exemple des actions des obligations des devises et des produits d riv s Les options font partie de ces produits d riv s n goci s sur les march s Les traders commerciaux financiers de soci t s financi res proposent leurs clients d acheter leurs options Le prix de ces options fluctue sans arr t car ces options sont des contrats bas s sur d autres produits financiers dont le prix volue avec le march Donc un trader a besoin d une applica
47. prix de cette option appel aussi prime pourrait tre de 3 pour rattraper la perte du trader Dans tous les cas la difficult pour le trader est de pr voir le prix de l actif la date de maturit pour estimer la prime C est l application de pricing qui effectue ce calcul et fixe le prix de l option Habituellement le trader cherche seulement gagner t 0 de quoi compenser les pertes T L institution financi re du trader gagnera de l argent en pla ant normalement l argent re u t 0 dans des investissements sans risques 6 1 3 Calcul du prix d une option europ enne Les calculs qui suivent nous ont t fournis par l quipe de recherche Omega de l INRIA Sophia Antipolis sp cialis e dans le calcul num rique probabiliste appliqu la finance 1 Ils ne sont pas de notre domaine de comp tence donc pour obtenir plus d information nous encourageons la lecture de 27 Le prix d une option calcul la signature du contrat est l esp rance math matique E du payoff de l option calcul avec le taux d int r t sans risque annuel r ces formules tiennent compte du taux d int r t et sont donc plus pr cises que les formules de principe pr sent es la section pr c dente La formule pour calculer la prime d un call Prime E exp rT max S T K 0 1 La formule pour calculer la prime d un put Prime E exp rT max K S T 0 Pour ce calcul il faut p
48. ration de la puissance de calcul inutilis e des PC de bureau Un exemple extr me de tel middleware est le projet Seti home qui pour la recherche de signaux extra terrestres a r ussi en r cup rant des milliers de PC sur Internet produire l quivalent d une machine de 54 t raflops Des tentatives d interop rabilit entre des middlewares de grille ont t lanc es comme par exemple le projet europ en UniGrids Par contre les entreprises pr f rent utiliser des middlewares propri taires moins ambitieux et plus op rationnels comme le SUN Grid Engine ou les middlewares de Data Synaspe et de Platform Computing 1 4 Quelques projets De nombreux projets de grille sont en cours de d veloppement dans le monde Le projet am ricain TeraGrid commenc en 2001 a permis de mettre en place une infrastructure compos e d un r seau rapide de supercalculateurs et de grandes capacit s de stockage 6 Des projets scientifiques et informatiques ont test ce syst me Par exemple des exp rimentations sur les transferts de donn es ont t men es voir figure 1 5 NSF TeraGrid Extensible Terascale Facility Suona PL Purdue Psc NCSA iu Caltech LE sosai Figure 1 5 Projet TeraGrid Le projet am ricain Open Science Grid OSG b ti sur Globus permet depuis 2004 diverses communaut s scientifiques les virtual organizations d acc der une m me infrastructure de grille et ainsi de partager
49. section 3 3 Si au cours de cette attente on modifie les membres du groupe en rempla ant les membres perdus par des nouveaux ProActive semble ne pas d tecter l arriv e du r sultat du nouveau membre sauf si au moins un r sultat d un membre d origine arrive Donc pour faire face ce probl me nous avons Page 56 Grille de calculs cr un membre SubServer sur la machine du Server qui renvoie sans arr t un r sultat vide ainsi ProActive continue d tecter l arriv e des r sultats des nouveaux membres Cet objet actif renvoyant un r sultat vide doit tre plac la fin du groupe sinon ProActive ne verrait jamais les r sultats des membres suivants un r sultat est toujours disponible pour cet objet et ProActive v rifie l arriv e des r sultats en parcourant toujours le groupe du premier au dernier Nous avons aussi ajout sur chaque SubServer un objet Worker renvoyant un r sultat nul Deuxi me probl me Lorsque le syst me n a plus aucune machine de r serve si un Worker en panne est enlev de son groupe en dehors de la p riode de calcul on veille ne pas changer le groupe pendant les calculs le groupe de r sultats ProActive produit quand m me une erreur lorsqu on relance des calculs Pour viter ce probl me il faut laisser le groupe avec le m me nombre de membres en cr ant des membres fictifs renvoyant r guli rement un r sultat nul sur le SubServer pour chaque membre tomb en panne
50. simple en utilisant un seul SubServer ensuite 2 SubServers et enfin 4 SubServers voir figure 8 5 et 8 6 Page 95 Grille de calculs Option simple avec 100 millions de simulations 70 60 DEA a 50 3 1 SubServer 40 _s 2 SubServers 30 __1 4 SubServers 20 D e 10 0 O 20 40 60 80 100 120 140 160 180 200 Nombres de workers Figure 8 5 Temps de calculs en augmentant le nombre de SubServers Option simple avec 100 millions de simulations 100 90 80 70 2 60 1 SubServer z sa 2 SubServers 3 50 s 40 4 SubServers 7 ai S P P 20 10 0 O 20 40 60 80 100 120 140 160 180 200 Nombre de workers Figure 8 6 Speed up en augmentant le nombre de SubServers Les figures 8 5 et 8 6 montrent que jusqu 40 Workers un seul SubServer suffit pour les g rer et maintenir une bonne performance Ensuite plus on augmente le nombre de Workers et plus il faut augmenter le nombre de SubServers pour maintenir un bon Speed up Ces mesures confirment la n cessit d une architecture hi rarchique lorsque le nombre de Workers est important pour viter un goulot d tranglement sur le Server et une perte d efficacit D une mani re empirique on peut conseiller d utiliser un SubServer pour g rer 40 Workers pour cette application Par exemple si on veut d ployer 80 Workers il faudrait utiliser 2 SubSer
51. soudre ce probl me sans les transactions on doit mettre dans le JavaSpace un peu plus de t che que n cessaire pour compenser d ventuelles pertes de t che Par contre avec les transactions on place dans une m me transaction la prise de la t che dans le JavaSpace et l criture du r sultat Si un Worker dispara t la transaction n est pas valid e le commit n a pas lieu et la t che est automatiquement remise dans le JavaSpace la fin du bail ou lease Mais chaque type de calcul demande des temps de traitement diff rents Dans l application d velopp e nous utilisons un lease fix au d part qui est ensuite r guli rement rafra chit gr ce la m thode renew voir section 4 4 Ainsi en utilisant des services Jini activables les pannes de ces services sont d tect es et les services perdus sont relanc s Les transactions permettent de r cup rer une t che perdue suite la panne d un Worker Et enfin en utilisant la persistance pour sauvegarder les donn es d un JavaSpace sur un disque distant non encore d velopp il serait possible d am liorer la r cup ration sur panne lorsqu un SubServer est remplac Ces m canismes peuvent donc tre associ s ceux des niveaux applicatifs et PicsouGrid pour am liorer la tol rance aux pannes de l ensemble Ces diff rents modes de fonctionnement des JavaSpaces et des services Jini sont sp cifi s dans les fichiers de configurations utilis s au lancem
52. type UserServer voir figure 5 13 La m thode calculate appelle la m thode factoryResult qui contient le code de l utilisateur pour r aliser les calculs On notera que dans cet exemple on se limite aux classes Server et SubServer et que cette derni re prend en param tre une classe UserResult Les classes Worker et User Worker ont disparu pour obtenir un exemple plus simple et sont remplac s par de simples r sultats Page 58 Grille de calculs generics generics Server lt USS gt SubServer lt UR gt lt lt bind gt gt lt lt bind gt gt i Server lt UserSub Server gt SubServer UserResult Bis ubserver USS alculate BMactorySub Server EE ctoryResult 0 UserServer UserSubServer BactorySubServer BactoryResult Figure 5 13 Diagramme de classe de l exemple Dans la classe g n rique Server on a le code suivant abstract public class Server lt USS extends SubServer gt protected USS subserver subserver factorySubServer abstract public USS factorySubServer L objet subserver est d clar de type g n rique USS et est cr par la m thode factorySubServer d velopp e dans la classe UserServer Gr ce aux m canismes de sp cialisation des generics la m thode factorySubServer permet de cr er en fait un objet actif de type UserSubServer voir section 5 7 2 D
53. users staginfo bezzine JavaSpaces Config outrigger persistent config true Transaction Manager private static mahalo service new SharedActivatableServiceDescriptor http host port mahalo d1l jar jskdl policy usr java Jini2 1 l1ib mahalo jar com sun jini mahalo ActivatableMahalolImpl tmp sharedVMlog new String usr users staginfo bezzine JavaSpaces Config mahalo persistent config true static serviceDescriptors new ServiceDescriptor httpd service sharedVM reggie service outrigger service mahalo_ service pour d truire correctement les services activables private static shared group service new SharedActivatableServiceDescriptor http host port group dl jar policy usr java Jini2 1 l1ib group jar com sun jini start SharedGrouplmpl tmp sharedVMlog new String usr users staginfo bezzine JavaSpaces Config activatable group config false static serviceDestructors new ServiceDescriptor shared group service Figure 4 4 b Fichier de configuration des services Jini persistants et activables derni re partie Page 35 Grille de calculs Maintenant on peut utiliser ces services et particuli rement les transactions avec le JavaSpace On utilise la classe EmployeeEntry pour mettre des objets dans le JavaSpace et la m thode getSpace String lookupAddress voir
54. utilisateur car si on lance plusieurs rmid sur des machines diff rentes mais visant un m me r pertoire du compte utilisateur par montage NFS alors des conflits apparaissent rmid J Djava security policy usr users staginfo bezzine JavaSpaces Config jsk all policy log tmp rmilog Ensuite on lance tous ces services en ex cutant cette commande java jar Djava security policy usr users staginfo bezzine JavaSpaces Config jsk all policy usr java Jini2_1 1ib start jar usr users staginfo bezzine JavaSpaces Config start persistent transaction config Si on veut d truire ces deux processus pour arr ter les services il faut d abord stopper correctement l activation des services sinon ils seront relanc s d s qu un rmid et un serveur http appara tront java jar Djava security policy usr users staginfo bezzine JavaSpaces Config jsk all policy usr java Jini2_1 1ib destroy jar usr users staginfo bezzine JavaSpaces Config start persistent transaction config Page 33 Grille de calculs import com import com import com import com import com sun jini sun jini sun jini com sun jini start private static policy usr users staginfo bezzine JavaSpaces Config sk all policy private static host ConfigUtil getHostName policy start NonActivatableServiceDescriptor start SharedActivatableServiceDescriptor Start Sh
55. 8 1 3 Les figures 8 7 et 8 8 montrent une diff rence d efficacit partir de 40 Workers due au temps de communication entre les diff rents sites Des analyses suppl mentaires sont n cessaires pour savoir si ce ralentissement des communications est d la latence ou une diminution de la bande passante ou un probl me ponctuel de communication entre les sites Des mesures de calculs suppl mentaires seraient n cessaires Mais nous n avons pas eu le temps de les effectuer cause de l incident survenu sur le site d Orsay qui a pos des probl mes d acc s au reste de la grille et parce qu il est difficile d obtenir beaucoup de machines disponibles en m me temps sur plusieurs sites de Grid 5000 voir section 6 2 4 Les courbes obtenues laissent penser que l utilisation de plusieurs sites distants pour r aliser des calculs ne sera efficace que si les calculs se font en m me temps que les communications ce qui n est pas encore le cas dans notre architecture 8 3 PicsouGrid et la tol rance aux pannes Nous pr sentons les mesures de performances de la tol rance aux pannes en mode ProActive dans la section 8 3 1 et ensuite en mode JavaSpace dans la section 8 3 2 Et nous analysons ensuite tous les r sultats dans la section 8 3 3 8 3 1 Mesures de performance sur un petit cluster en mode ProActive Nous avons test la tol rance aux pannes de PicsouGrid en mode ProActive lorsque l application effectue
56. 82 92 Reservations ann SUSISNE ans I sun SSISNS anne A cou S mon SIMS ana Free Free aoa SMAA aae M mn SSIS amau Pre Free ann S ne 5115951159 men 27 mA 002 SIN SN amer 5115551155 mense SA eme 5115551155 en E S su SN SN ner SIT SIN ner SMGN SIGN amn 36 E1131 SMS eme SNS nn 5115851158 menso 5115351153 men o SM31531 ame Eee Eee emne SIST ner S 0 5015 amea SMSIS maz Job details Id User State Queue NbNodes Weight Type Properties Reservation Walltime Submission Time Start Time Scheduled Start 2006 09 21 2006 09 22 2006 09 22 S1088 crattanapoka Waiting default 40 2 PASSIVE Scheduled 03 00 00 17 17 12 23 00 00 23 00 00 E E Fi 5 internet le D marrer J 3 A A A A Bo te de r ception Out C U M maire Java Userworker java E M moire info doc Micr Monika Grid5000 Na x sga 16 29 _ Figure 6 2 Monika interface web de Grid 5000 synth se de l tat de la grille ECO Internet Explorer 151x Fichier Edition Affichage Favoris Qutis 2 a Q Pr c dente OAS A BEM 7e Favors a PER Adresse https helpdesk grid5000 Fr oar Nancy DrawOARGantt pl z o uens Google v GiRechercher g PageRank KY 181 bioqu e s Options CE 2 Gantt Chart Origin 2006 7 Sep 22 7 08 00 7 Range 1 dey M BestEffor Drew Default 9h 10h 11h 12h 13h 1 aus E
57. CONSERVATOIRE NATIONAL DES ARTS ET METIERS CENTRE REGIONAL DE LORRAINE SUPELEC CAMPUS DE METZ CONCEPTION ET IMPLANTATION D UNE GRILLE DE CALCULS DE RISQUES TOLERANTE AUX PANNES RAPPORT DE RECHERCHE EN INFORMATIQUE NOVEMBRE 2006 BEZZINE S bastien Grille de calculs Table des mati res Introduction Een Une de Men T A LS Ts ee ne 5 I Les grilles de calctl rirnan ia tante man denis 6 1 1 DEDIN ariii a eaa A E AEA K aa AEE 6 1 2 Evolution des grilles de Caluire ae ete 8 1 3 Composants actuels d une grille nssnsneoeesseessessossesseesresseeseesessstesesressressesess 8 1 3 1 Architect tre g n rales nina oea iaar NS eee a ia 8 1 3 2 Exemples de middlewares existants ssseseenseseosseeseesesssoeseessressessrssressesse 9 l4 Q elgu s Projets sn ne nn EA E E RER RRES 10 1 5 La grille dans P NH DRSES EN nr ln ee 13 1 5 1 LES deb ts se nn a 13 1 5 2 Les Obstacle an a a ne MR ete dre 14 1 5 3 Les produits US RS a et nn en ne 14 II D finition du projet de m moire 15 2 1 L projet ANR EC CPME SR en ne 15 2 1 1 Context du Projets sera e a e a E a E A ERR RRRS 15 21 2 Principaux objectifs informatiques 15 22 L sosproet Risque telnet lens ne une astra 16 23 Choix de l environnement de d veloppement 16 II Introduction ProAetiv sss ennemie naine 17 3 1 Quest ce que ProACtHIVE eierniie a E E re EE drdn 17
58. FS du compte n est pas global mais seulement par site 6 2 2 R servation de ressources Avant de r server des n uds pour r aliser des exp rimentations il est important de conna tre la disponibilit des n uds Plusieurs outils existent 28 Sur chaque cluster on peut utiliser deux outils en ligne de commande e oarstat offre un aper u des r servations en cours ou planifi es e _oarnodes indique les diff rentes propri t s des n uds libre occup ou en panne Sur le site web de Grid 5000 on trouve des interfaces r serv es aux personnes ayant un compte enregistr sur la grille offrant une vue de chaque cluster ou de l ensemble de la grille e Monika synth tise les informations de oarstat et de oarnodes L tat courant des n uds et la liste des r servations courantes et futures sont repr sent s voir figure 6 2 e DrawOARGrantt indique le statut courant des n uds et la liste des r servations planifi es L interface pr sente l aide d un diagramme temporel le statut pass courant et futur des n uds sur 24 heures voir figure 6 3 Pour r server des n uds on utilise l outil OAR qui est un batch scheduler On r serve des n uds sur un cluster avec la commande oarsub OAR dispose d un mode de soumission de r servation interactif Exemple oarsub I 1l nodes 2 walltime 2 00 00 q deploy Cette r servation est demand e pour 2 n uds pendant 2 heures avec la possibilit de d pl
59. Group groupAlives set i newALive newSub connectServer localhost envoie du groupe de Workers avec leur objet Alive newSub setSub UW vectorGroupWorkers get i Alive vectorGroupSubAlives get i nodes i d but de la d tection des pannes newSub startControl while newSub getOkControl try Thread sleep 50 catch InterruptedException e services Jini lanc s si JavaSpaces activ s newSub setRunSpace runSpace if runSpace amp amp goSpace newSub launchJini if calculateLaunch newSub stopJob if runSpace newSub getSpace si p riode de calcul envoie de toutes les donn es if calculateLaunch newSub initiate getDataInitiate newSub setSubServerPartialResult getPartialResult i getNbTask i ProxyForGroup groupResultsSubServers set i newSub calculate catch Exception e setMessage Le nouveau SubServer n a pas pu etre lance error e Page 78 Grille de calculs La m thode stopSub est indiqu e comme prioritaire pour le nouveau SubServer Le nouveau SubServer et son objet Alive sont plac s dans leur groupe la place de ceux disparus gr ce la m thode set La m hode connectServer String localhost permet au nouveau SubServer de recevoir l adresse de la machine h te du Server pour rechercher une r f rence sur le Server et utiliser ses m thodes La m thode setSub permet d envoyer au nouveau
60. Process gt lt jvmProcess class org objectweb proactive core process yJVMNodeProcess gt lt classpath gt lt absolutePath value usr users staginfo bezzine ProActive classes gt lt absolutePath value usr users staginfo bezzine ProActive ProActive jar gt lt absolutePath value usr users staginfo bezzine ProActive lib bcel jar gt lt absolutePath value usr users staginfo bezzine ProActive lib jsch jar gt lt classpath gt lt javaPath gt lt absolutePath value usr lib jre bin java gt lt 3avaPath gt lt policyFrile gt lt absolutePath value usr users staginfo bezzine ProActive scripts proactive java policy gt lt policyFile gt lt log4 jpropertiesFile gt lt absolutePath value usr users staginfo bezzine ProActive scripts proactive log4i gt Page 22 Grille de calculs lt log4 jpropertiesFile gt lt jvmProcess gt lt processDefinition gt lt processDefinition id rshProcessl gt lt d finition du processus gt lt rshProcess lt de cr ation d une JVM distante gt class org objectweb proactive core process rsh RSHIJVMProcess hostname sh01 gt lt processReference refid MyJvmProcess gt lt rshProcess gt lt processDefinition gt lt processDefinition id rshProcess8 gt lt rshProcess class org objectweb proactive core process rsh RSHIJIVMProcess hostname sh08 gt lt processReference refid MyJvmProcess gt lt rshPr
61. Server d faillant voir section 5 6 2 En comparant les surco ts en mode aucune et en mode JavaSpace nous remarquons que le remplacement de 3 SubServers demande au maximum 7 8 secondes en mode aucune et 11 5 secondes en mode JavaSpace pour le calcul d une option barri re Avec une option sur panier ce temps passe 17 7 secondes en mode aucune et 20 7 en mode JavaSpace Cette diff rence de temps entre les 2 modes peut s expliquer car en mode JavaSpace le nouveau SubServer cr pour remplacer celui en panne doit lancer tous les services aucune n cessaires au fonctionnement du JavaSpace et cette op ration n est bien s r pas r alis e en mode aucune Le d ploiement et l exploitation d une m moire partag e virtuelle sur un cluster ou une grille de PC se paye donc par des surco ts de r paration plus important en cas de panne Page 100 Grille de calculs Bien s r tous ces surco ts disparaissent aux calculs suivants puisque l architecture retrouve sa structure initiale apr s les r parations S il ne reste plus de machines de r serve PicsouGrid continue fonctionner mais plus lentement Les Workers en panne ne sont pas remplac s et rallongent les temps de calculs Cependant les temps de calculs restent identiques apr s la r paration de SubServers en panne car les nouveaux Subservers sont plac s sur la m me machine que le Server 8 4 Premiers r sultats avec une tol rance aux pannes renforc e Nous avons
62. SubServer son groupe de Workers le groupe d objets Alive le tableau de n ud et son num ro La m thode startControl permet de d buter la d tection des pannes du nouveau SubServer pour ses Workers La m thode getOkControl permet d attendre qu une premi re d tection de pannes avec r paration si n cessaire soit termin e avant de continuer La m thode setRunSpace permet de pr ciser si le mode JavaSpaces est activ ou non S il est activ la m thode launchJini est ex cut e pour lancer les services Jini et la m thode getSpace est ex cut e pour permettre au nouveau SubServer et son groupe de Workers d obtenir une r f rence sur le JavaSpace lanc La m thode stopJob permet de stopper les calculs des Workers lanc s par l ancien SubServer La m thode initiate permet de transmettre les donn es initiales n cessaires aux calculs ces donn es sont fournies par l utilisateur gr ce la m thode getData lnitiate de la classe fille La m thode setSubServerPartialResult permet de fournir au nouveau SubServer le dernier r sultat partiel de l ancien SubServer et le nombre de t ches qu il lui restait accomplir Ces diff rentes informations sont fournies par l utilisateur gr ce aux m thodes getPartialResult i et getNbTask i de la classe fille UserServer Les calculs sont relanc s gr ce la m thode calculate et le r sultat est plac dans le groupe de r sultat la place du r
63. aSpace Par contre si le JavaSpace est utilis avec des transactions l efficacit se d grade un peu La gestion des transactions entra ne un surco t ce qui explique la perte d efficacit Plus les communications entre les JavaSpaces et les SubServers ou les Workers seront nombreuses et plus l efficacit diminuera lors de l utilisation des transactions 8 1 3 Performances sur un gros cluster en mode ProActive Nous avons mesur les performances de l application utilisant PicsouGrid sur un gros cluster de Grid 5000 la machine GDX du site d Orsay compos de machines identiques ayant les caract ristiques suivantes processeur AMD Opteron 2 Ghz 1 Mo de m moire cache m moire vive 2 Go Nous n avons malheureusement pas eu la possibilit d effectuer beaucoup de mesures de performances sur ce site et sur l ensemble de Grid 5000 cause des probl mes techniques expos s la section 6 2 4 et aussi par suite d un incident technique survenue l IDRIS h bergeant le site d Orsay le 13 octobre 2006 Nous n avons pas eu le temps de tester l application en utilisant les JavaSpaces sur Grid 5000 suite au retard d int gration des JavaSpaces dans PicsouGrid provoqu par l incompatibilit entre ProActive et Jini JavaSpaces expliqu e la section 5 8 1 et r solue fin juillet 2006 Nous avons mesur les temps de calculs et les Speed up de l application calculant une option europ enne
64. analyse dynamique de ressources partage et allocation des diff rentes ressources suivant des crit res techniques et conomiques coh rence des donn es distribu es et des versions des logiciels valuation des performances et mesure de la qualit de service comptabilisation des ressources consomm es distribu es et partag es et facturation L environnement de d veloppement doit poss der un certains nombres de fonctionnalit s e d ploiement dynamique de programmes sur la grille e recouvrement des calculs et des communications e possibilit de communications synchrones et asynchrones e acc s au monitoring de la grille e 1 3 2 Exemples de middlewares existants Des middlewares g n riques et ambitieux ont t d velopp s comme par exemple Globus aux Etats Unis et Unicore en Europe Le projet Globus a cr un standard d architecture de grille OGSA Open Grid Services Architecture La derni re version de Globus associe les technologies de grille de OGSA et les technologies Web Services et a abouti la norme WSRF Web Services Resource Framework Des middlewares associ s des environnements de d veloppement ont Page 9 Grille de calculs aussi t con u par exemple NetSolve DIET JavaSpaces Jini ProActive Ils sont g n riques moins ambitieux et plus simples d ployer et utiliser XtremWeb est un autre type de middleware de grille bas sur la distribution de calculs ind pendants et la r cup
65. ans une m thode de la classe UserServer on utilisera l objet subserver cr par la Factory UserResult result subserver calculate j Dans la classe g n rique SubServer on implante la m thode calculate abstract public class SubServer lt UR extends Result gt public UR calculate UR result factoryResult return result abstract public UR factoryResult Page 59 Grille de calculs Dans la classe UserSubServer on implante la fabrication d un r sultat pour remplacer des calculs public class UserSubServer extends SubServer lt UserResult gt public UserResult factoryResult return new UserResult Lors de l ex cution de subserver calculate le syst me se bloque suite une erreur du type d objet en retour Dans notre exemple le type de l objet r sultat de la m thode calculate devrait tre UserResult mais en fait c est un objet de la classe m re Result qui est envoy ProActive semble cr er un Stub_Result et non un Stub_UserResult lorsque la m thode calculate est lanc e De plus on ne peut pas simplement transtyper le r sultat de cette fa on UserResult result UserResult subserver calculate Un UserResult est pourtant envoy par la m thode calculate de SubServer le Stub semble ne garder que la partie Result correspondant la classe m re de UserResult Par contre sans utiliser ProActive on ne re
66. aredActivationGroupDescriptor sun jini sun jini start ServiceDescriptor config ConfigUtil private static port 8088 private static jskdl http host port jsk dl jar serveur http private static httpd_service new NonActivatableServiceDescriptor policy usr java Jini2 1 l1ib classserver jar com sun jini tool ClassServer new String port port dir usr java Jini2 1 lib dl verbose pour regrouper tous les services activables private static sharedVM new SharedActivationGroupDescriptor policy usr java Jini2 1 1ib sharedvm jar tmp sharedVMlog null null null service Look up private static reggie service new SharedActivatableServiceDescriptor http host port reggie d1l jar jskdl usr java Jini2 1 l1ib reggie jar com sun jini reggie PersistentRegistrarImpl tmp sharedVMlog new String true usr users staginfo bezzine JavaSpaces Config reggie persistent config Figure 4 4 a Fichier de configuration des services Jini persistants et activables premi re partie Page 34 Grille de calculs JavaSpace private static outrigger service new SharedActivatableServiceDescriptor http host port outrigger dl jar jskdl policy usr java Jini2 1 lib outrigger jar com sun jini outrigger PersistentOutriggerImpl tmp sharedVMlog new String usr
67. ation des donn es et ils permettent souvent de faire du data mining large chelle e Les grilles de calcul permettent de distribuer des calculs sur des ressources r parties pour b n ficier d une plus grande puissance de calcul Ces grilles sont en g n ral form es de clusters et de serveurs mais parfois des PC de bureau sont utilis s Ces grilles deviennent de plus en plus n cessaires pour faire face l augmentation constante des besoins en puissance de calcul A nsi la complexit des syst mes tudi s en recherche scientifique et dans l industrie thermique structure fluides biologie etc induit des besoins de puissance de calcul pouvant atteindre plusieurs t raflops Les projets n cessitant de telles puissances de calcul sont par exemple les mod les m t o et les tudes sur le changement climatique global les simulations de mat riaux les simulations et outils de conceptions en a ronautique automobile chimie ou nucl aire certains calculs de risques dans le domaine de la finance e Les grilles collaboratives sont utilis es pour faire collaborer des personnes loign es g ographiquement gr ce des transmissions en temps r el Ainsi ces personnes peuvent travailler ensemble et changer documents donn es logiciels r sultats etc la coh rence de ceux ci tant assur e au cours de l ensemble des manipulations Les grilles r parties sur des sites loign s ont commenc appara tre lorsque le
68. aturite double arrieret double isteActif double jisteVolatilite doublel isteCorrelation double ewSimulation boolean oolean Userinit ctorPartialResult Vector lt UserResult gt JPanel panels JPanel panels JPanel panel JPanel panel JPanel panel JPanel panel JPanel panel9 JPanel panel10 JPanel panel11 JPanel panel12 JPanel panel13 JPanel panel14 JPanel pptions ButtonGroup simpleOption JRadioButon barriereOption JRadioButton panierOption JRadioButton jabel1 JLabel IserServer etPortSocket etAddressFileDescriptor jetNameVirtualNode iculateLaunch etSererPartalResul jetNbTask etPartialResult barriereChoix Sting bariereList JComboBox jabel2 JLabel actif JTextField Jaux JTexField jabel5 JLabel olat JTextField barrieret JTextField barriere2 JTextField launch JButton recover JButton essage JTexArea Fcroll JScrollPane raphic temStateChanged ctionPerformed n rror ain Sub Server lt UW UR Ul gt Worker lt UR Ul gt lt lt bind gt gt lt lt bind gt gt SubServer lt UserWorker UserResult Userlnit gt Worker lt UserResult Userlnit gt jorkers UW lives Aive roupWorkers Group roupResultsWorkers Group roupAlives Group des Node
69. au contenant tous les n uds cr s voir section 3 7 startDeploy 2 partie si le nombre de n uds cr s est insuffisant l architecture PicsouGrid est stopp t d truit if nbProcesseurs 0 d tection du probl me okDeploy false if nbSubServers gt nbProcesseurs setMessage Le nombre de SubServers demandes est trop grand par rapport au nombre de noeuds deployes okDeploy false calcul du nombre de n uds de r serve nbNode nbProcesseurs nbWorkers nbSubServers if nbNode lt O setMessage Il n y a pas assez de noeuds deployes pour le nombre de Workers demandes okDeploy false if okDeploy setMessage IL y a nbNode machines de reserve pour compenser les pannes nbIinitialWorkers nbWorkers num ro du dernier n ud occup dans le tableau de noeuds numNode nbWorkers nbSubServers 1 envoie d informations l objet actif poolnode poolnode setNbNode nbNode numNode calcul du nombre de Workers par SubServer nbWork nbWorkers nbSubServers cr ation des SubServers et de leur groupe de Workers subservers createGroupSubServer subservers connectServer localhost subservers setRunSpace runSpace initNbLostWorkersAndVectorLiving createGroupWorkers subservers startControl startControl US SubServerDeblock factorySubServer groupSubServers add SubServerDeblock SubServerDeblock setDeblock tr
70. bjets actifs compos d un ensemble de Workers ou de SubServers Ces m canismes de communication de ProActive sont eux m mes implant s en RMI Notre architecture logicielle utilise beaucoup les groupes d objets actifs de ProActive Cependant il est possible d activer une m moire partag e virtuelle entre chaque SubServer et son groupe de Workers voir figure 5 1 gr ce aux JavaSpaces et des services Jini sous jacents voir chapitre 4 Les services Jini n cessaires un JavaSpace serveur http look up JavaSpace Transaction Manager sont lanc s sur chaque SubServer Ainsi chaque SubServer et son groupe de Workers peuvent utiliser une m moire partag e virtuelle propre Cette strat gie vite l engorgement d une unique m moire partag e mais emp che de cr er une grande m moire partag e englobant toute la grille Nous avons fait ce choix car les m moires partag es virtuelles sont connues pour n tre efficaces que sur un nombre limit de machines particuli rement les m moires partag es virtuelles logicielles Nous lan ons ainsi plusieurs services look up s il y a plusieurs SubServers Les JavaSpaces et les Transaction Managers sont enregistr s sur tous les services look up car ceux ci envoient r guli rement sur le r seau des requ tes multicast Le look up se trouvant sur la machine d un SubServer va donc aussi enregistrer les JavaSpaces et les Transaction Managers des autres machines h bergeant un SubServer
71. c un d bit allant de 2 5 Gbit s 10 Gbits s 16 Chaque n ud est compos de clusters de 94 1024 processeurs Actuellement la grille poss de presque 3000 processeurs mais ce chiffre augmente continuellement pour atteindre les 5000 processeurs L objectif est d exp rimenter les diff rents niveaux logiciels de la grille comme les applications les algorithmes les middlewares les protocoles r seaux voir figure 1 10 Sophia Nice Figure 1 10 Le projet Grid 5000 Une grande partie de nos exp rimentations ont t r alis es sur cette grille LS La grille dans l entreprise 1 5 1 Les d buts Les grilles informatiques ont d abord t utilis es dans le monde de la recherche scientifique car celle ci demande une puissance de calcul et une capacit de stockage de plus en plus importantes Mais certaines entreprises priv es commencent aussi y avoir recours pour effectuer des simulations de gros volumes de donn es de l ordre du t raoctet notamment dans les secteurs de l automobile de l a ronautique des biotechnologies et de la micro lectronique D autres applications apparaissent dans le domaine de la finance diversification de portefeuilles financiers et valuation des risques de la sant analyse de clich s en mammographie assist e par ordinateur de l nergie traitement des donn es d exploration p troli re ou de l industrie des m dias calcul d animations en images de sy
72. calculs cr ation de la repr sentation standard du groupe pour ajouter 2 objets au groupe Group groupStdSalut ProActiveGroup getGroup groupSalut groupStdSalut add salut1 groupStdSalut add salut2 m thode saysalut lanc e sur le group t r cup ration des r sultats ContainerString groupMessageRes GroupSalut saysalut Group groupStdMessageRes ProActiveGroup getGroup groupMessageRes for int i 0 i lt groupStdMessageRes size i System out printin ContainerString groupStdMessageRes get i getString destruction des n uds et des objets associ s pad killall false System exit 1 catch Exception e System err println Error e getMessage e printStackTrace j Voici le r sultat affich sur la console du poste utilisateur Salut de sh03 metz supelec fr NoeudSalut 1276061078 Salut de sh01 metz supelec fr NoeudSalut 1197957052 Salut de sh06 metz supelec fr NoeudSalut 1206421527 Salut de sh07 metz supelec fr NoeudSalut 1199880796 Salut de sh04 metz supelec fr NoeudSalut 1204497783 Salut de sh05 metz supelec fr NoeudSalut 1220657237 Salut de sh08 metz supelec fr NoeudSalut 1550387044 Salut de sh02 metz supelec fr NoeudSalut 1562699009 Salut de LOCAL Salut de sh00 metz supelec fr Node 371497875 Un autre exemple consiste obtenir un tableau des n uds associ s un n ud virtuel gr ce la m thode getNodes e
73. ce et en temps r el dans les salles de march o se traitent tr s rapidement des milliers de transactions Les traders ont besoin de calculer le risque associ chaque transaction qu ils s appr tent effectuer pour d cider de conclure ou de renoncer ces transactions Ils effectuent donc de nombreux calculs de risques de courte dur e mais avec de fortes contraintes de temps des calculs plus longs d une part certaines transactions complexes sont lourdes valuer options exotiques et d autre part il est n cessaire d analyser le risque global c est le r le du contr le du risque d une banque portant sur un ensemble d activit s Ces analyses de risques ne sont pas aussi nombreuses mais durent tr s longtemps et peuvent monopoliser l ensemble des ordinateurs et leur aboutissement doit aussi tre garanti en un temps pr d termin elles sont souvent effectu es pendant la nuit Ainsi les calculs de risques exigent de respecter des contraintes de temps pour prendre rapidement de nombreuses d cisions et engager des actions Ces contraintes qui ne cessent de se complexifier imposent de d passer les limites des ordinateurs actuels C est pourquoi le recours des grilles de calcul est d hors et d j courant dans ce contexte mais pose des difficult s nouvelles que ce projet se propose de r soudre Les principaux objectifs informatiques de ce projet ANR sont Concevoir des algorithmes de calculs dis
74. core entry Entry import net jini lookup entry Name import com sun jini config ConfigUtil exemple de configuration du Transaction Manager ayant pour nom 1 adresse de la machine locale et avec un r pertoire de stockage com sun jini mahalo initialLookupAttributes new Entry new Name ConfigUtil getHostName persistenceDirectory tmp activatable mahalo log De plus on param tre le fichier n cessaire au lancement des services persistants activables sur la m me machine start persistent transaction config voir figure 4 4 Ce fichier contient la configuration des services persistants activables Si on le compare au fichier de la figure 4 3 il contient les m mes services et des services suppl mentaires dont le service de transaction mahalo_ service Les services sharedVM et shared_ group_ service permettent tous les services activables SharedActivatableServiceDescriptor d tre regroup s en ayant un m me r pertoire d activation tmp sharedVMlog Ainsi l activation des services peut tre arr t e facilement gr ce au serviceDestructors qui est utilis lorsqu on lance l ex cution du programme destroy jar L impl mentation permet aux services d tre lanc s en mode persistant PersistentRegistrarImpl PersistentOutriggerImpl ActivatableMahalo lmpl Tout d abord on lance le RMI daemon rmid en pr cisant bien un r pertoire de fonctionnement log sur la machine et non sur le compte
75. d gt lt creation gt lt processReference refid rshProcess1l gt lt creation gt lt 3vm gt Page 21 Grille de calculs lt jvm name Jvm2 gt lt creation gt lt processReference refid rshProcess2 gt lt creation gt lt 3vm gt lt jvm name Jvm7 gt lt creation gt lt processReference refid rshProcess7 gt lt creation gt lt 3vm gt lt jvm name Jvm8 gt lt creation gt lt processReference refid rshProcess8 gt lt creation gt lt 3vm gt lt jvms gt lt deployment gt La balise lt infrastructure gt permet d abord d associer un processus d ex cution d une JVM MyJvmProcess adresse de l interpr teur Java et de tous les fichiers n cessaires au fonctionnement d une machine virtuelle et de son n ud classes jar politique de s curit et journalisation des erreurs Ensuite chaque processus de cr ation des machines virtuelles par exemple rshProcess1 est associ le programme de connexion utilisant un protocole de connexion distance rsh ssh avec le nom de la machine atteindre et le processus d ex cution d une JVM permettant de lancer la machine virtuelle et de cr er le n ud lt derni re partie du fichier xml pour d finir les processus de gt lt l cr ation des JVM gt lt infrastructure gt lt processes gt lt d finition du processus d ex cution d une JVM gt lt processDefinition id MyJvm
76. d marrage automatique Le temps de calcul de chaque t che tant long 8 4 seconde le JavaSpace avait suffisamment de temps pour tre relanc et pour r cup rer ses donn es sans ralentir les calculs en cours En revanche avec des JavaSpaces activables et persistants utilisant les transactions des surco ts apparaissent partir de 2 JavaSpaces d truits voir tableau 8 5 Pannes simultan es Avec transaction Surco ts sans panne 56 4 1 JavaSpace 56 4s 2 JavaSpaces 59 5s 3 1s 3 JavaSpaces 65 25 8 85 Tableau 8 5 Surco ts provoqu s par des pannes option sur panier Nous avons ensuite effectu ces exp riences en calculant une option barri re avec 100 millions de simulations et des t ches de 100 000 simulations le temps de calcul de chaque t che tait de 0 7 secondes Avec des JavaSpaces activables et persistants le calcul total demandait 42 5 secondes sans utiliser les transaction et 48 2 secondes en utilisant les transactions voir tableaux 8 6 et 8 7 Pannes simultan es Sans transaction Surco ts sans panne 42 5s 1 JavaSpace 44 6s 2 1s 2 JavaSpaces 44 3s 1 8s 3 JavaSpaces 47 6s 5 1s Tableau 8 6 Surco ts provoqu s par des pannes option barri re Page 101 Grille de calculs Pannes simultan es Avec transaction Surco ts sans panne 48 25 1 JavaSpace 51 9s 3 7s 2 JavaSpaces 50 5s 2 3s 3 JavaSpaces 52 1s 3 9s
77. de calcul nous provoquons les pannes simultan es de 1 6 Workers d un m me groupe 6 Workers correspondant la totalit du groupe et les pannes simultan es de 1 3 SubServers 3 SubServers correspondant la totalit du groupe de SubServers Le temps minimum correspond une panne provoqu e dans la situation la plus favorable c est dire juste apr s qu un Workers ait renvoy son r sultat au SubServer ou juste apr s qu un SubServer ait renvoy son r sultat partiel checkpointing au Server Le temps maximum correspond une panne provoqu e dans la situation la plus d favorable c est dire juste avant de renvoyer un r sultat donc le temps n cessaire au calcul de ce r sultat est perdu voir tableaux 8 1 et 8 2 Page 98 Grille de calculs Pannes simultan es Temps minimum Temps maximum Surco ts sans panne 43 0s 1 Worker 43 3s 43 95 0 3s 0 9s 2 Workers 43 35 44 65 0 3s 1 65 4 Workers 43 8s 45 65 0 8s 2 65 6 Workers 44 65 45 95 1 65 2 9s 1 SubServer 44 25 46 65 1 25 3 65 2 SubServers 45 5s 48 65 2 5s 5 6s 3 SubServers 46 3s 50 8s 3 35 7 8s Tableau 8 1 Surco ts provoqu s par des pannes pendant le calcul d une option barri re Pannes simultan es Temps minimum Temps maximum Surco ts sans panne 51 75 1 Worker 52 1s 52 65 0 4s 0 9s 2 Workers 52 4s 56 65 0 7s 4 9s 4 Workers 55 2s 61 8s 3 5s
78. de pannes et de r paration Ces m canismes logiciels collaborent avec ceux existants dans le middleware de grille utilis par le syst me pour effectuer les r parations sans arr ter le reste du syst me Cette tude fait partie du projet Grilles de Calcul appliqu s des Probl mes de Math matiques Financi res du programme de recherche Calcul Intensif et Grilles de calcul de l Agence Nationale de la Recherche en collaboration pour la partie informatique avec l INRIA de Sophia Antipolis le CERTIS de l ENPC et des soci t s priv es d informatique bancaire dont notamment Pricing Partners Notre architecture est d crite dans un article 1 accept la conf rence suivante 2 IEEE International Conference on e Science and Grid Computing qui aura lieu du 4 au 6 d cembre 2006 Amsterdam Apr s une description des grilles de calculs nous expliquerons le fonctionnement des technologies Java utilis es pour d velopper ce syst me ProActive et JavaSpaces Ensuite nous pr senterons l architecture logicielle les classes Generics utilis es et nous expliquerons dans le d tail les diff rentes classes du programme Enfin nous terminerons par la pr sentation de performances exp rimentales obtenues sur des clusters et des grilles multi sites comprenant des centaines de processeurs Page 5 Grille de calculs I Les grilles de calcul 1 1 D finition Le terme grid computing a t initialement utilis en
79. de type MessageEntry quelque soit le contenu du message Par contre si on pr cisait que template content Hello alors on obtiendrait seulement les objets contenant le message Hello 44 Exemple avec des services persistants activables et des transactions Il faut indiquer un r pertoire de stockage sur le disque dur pour chaque service persistant dans le fichier de configuration variable persistenceDirectory Lorsque le service tombe en panne et est relanc s il est activable il r cup re toutes les donn es plac es dans ce fichier et ainsi rien n est perdu On utilise le m me fichier de configuration de la section 4 3 On configure les services Look up JavaSpace et Transaction Manager en leur indiquant un r pertoire de stockage exemple de configuration du Look up avec un r pertoire de stockage com sun jini reggie persistenceDirectory tmp activatable reggie log import net jini core entry Entry import net jini lookup entry Name import com sun jini config ConfigUtil import com sun jini outrigger snaplogstore LogStore exemple de configuration du JavaSpace ayant pour nom l adresse de la machine locale et avec un r pertoire de stockage com sun jini outrigger initialLookupAttributes new Entry new Name ConfigUtil getHostName persistenceDirectory tmp activatable outrigger log store new LogStore this Page 32 Grille de calculs import net jini
80. dentifier et par une adresse de Sch ma d finissant la grammaire XML utilis lt ProActiveDescriptor xmlns xsi http www w3 org 2001 XMLSchemainstance xsi noNamespaceSchemaLocation DescriptorSchema xsd gt Avant d expliquer ce fichier en d tail on peut repr senter une hi rarchie des balises de d ploiement lt ProActiveDescriptor gt lt componentDefinition gt lt virtualNodesDefinition gt lt d finir le nom des noeuds virtuels gt lt virtualNodesDefinition gt lt et ses propri t s gt lt componentDefinition gt lt deployment gt lt mapping gt lt map gt lt jvmSet gt lt associer des noms de JVM chaque gt lt jvmSet gt lt noeud virtuel gt lt map gt lt mapping gt lt jvms gt lt chaque JVM est associ un nom de gt lt jvms gt lt processus gt Page 20 Grille de calculs lt deployment gt lt infrastructure gt lt processes gt lt processDefinition gt lt indication de l adresse des classes gt lt jvmProcess gt lt des programmes et des fichiers gt lt classpath gt lt pour le fonctionnement des JVM gt lt classpath gt lt javaPath gt lt javaPath gt lt policyFile gt lt policyFile gt lt log4jpropertiesFile gt lt log4jpropertiesFile gt lt jvmProcess gt lt processDefinition gt lt processDefinition gt lt chaque JVM est associ une adress gt
81. ders puissent compter sur un syst me de calcul tr s fiable Nous avons donc tenu compte de ces conditions d exploitation pour r aliser PicsouGrid et notamment son m canisme de tol rance aux pannes 5 3 Description de l architecture logicielle PicsouGrid La figure 5 1 d crit l architecture logicielle que nous avons d velopp e Le syst me est hi rarchique un Server r partit les calculs sur plusieurs SubServers qui eux m mes distribuent ces calculs sur leurs groupes de Workers Ainsi lorsque le nombre de Workers est tr s important plusieurs centaines de machines on peut augmenter le nombre de SubServers et diminuer la taille de chaque groupe de Workers Cette strat gie permet d viter un goulot d tranglement au niveau du Server car le syst me ralentirait si le Server devait recevoir et traiter seul beaucoup de r sultats venant directement de tous les Workers Le client envoie ses requ tes au Server en utilisant par exemple des Sockets protocole TCP et le Server ou les SubServers peuvent acc der une base de donn es pour r cup rer ou stocker les Page 40 Grille de calculs donn es n cessaires au traitement de la requ te du client Ces m canismes sont typiques des architectures 3 tiers l oppos la communication entre le Server les SubServers et les Workers s effectue principalement travers les m canismes de ProActive le plus souvent un appel de m thode est lanc sur un groupe d o
82. e nbWorkers nb2 nbl nodes nod workers factoryGroupWorker alives Alive ProActiveGroup newGroup Alive class getName groupWorkers ProActiveGroup getGroup workers groupAlives ProActiveGroup getGroup alives for int i nbl i lt nb2 i UW worker factoryWorker i Alive alive Alive ProActive newActive Alive class getName new Object new Conta inerInt i nodes i ProActive setImmediateService worker stopWork groupWorkers add worker groupAlives add alive createVectorLiving createWorkerDeblock server setMessage nbWorkers Workers crees pour un SubServer se trouvant address catch Exception e ok false error e obtention et stockage d une r f rence du JavaSpace if runSpace getSpace return ok Si le mode JavaSpaces est activ e les services Jini sont lanc s gr ce la m thode launchJini qui est d finie par l utilisateur dans la classe fille Ensuite le groupe de Workers et le groupe d objets Alive sont cr s sur les n uds sp cifi s du tableau de n uds La m thode stopWork est indiqu e comme prioritaire pour le nouveau SubServer ainsi on peut arr ter les calculs pendant une p riode de calculs La m thode createVectorLiving permet d initialiser un vecteur utilis e pour la gestion des pannes La m thode createWorkerDeblock est utilis e pour cr er un Worker n cessaire la r solution d
83. e numNode server setMessage IL reste nbNode machines de reserve pour compenser les pannes return numNode L objet actif de type PoolNode utilise la m thode setMessage du Server pour afficher le nombre de machines de r serve disponibles sur l interface graphique Il renvoie un nombre n gatif lorsqu il ne reste plus de machine de r serve S il reste des machines de r serve il renvoie le num ro du n ud utiliser comme machine de r serve 7 4 Analyse des principales classes de l application 74 1 Classe UserServer 7 4 1 1 La m thode executeSocket La m thode executeSocket permet de traiter la Socket du client pour ex cuter des calculs ou r cup rer des informations dans la base de donn es traitement de la Socket client classe UserServer public void executeSocket Socket service BufferedReader in null PrintWriter out null UserResult result null double put 0 double call 0 double variance double trustMin double trustMax 0 cr ation d un flux d entr e pour la Socket client try I 1 in new BufferedReader new InputStreamReader service getInputStream catch Exception e setMessage Erreur lors de la creation du flux d entree de la socket Page 85 Grille de calculs error e cr ation d un flux de sortie pour la Socket client try out new PrintWriter service getOutputStream true
84. e Keywords grid computing fault tolerance grid deployment dynamic load balancing performance measures Page 106
85. e 7 1 nous pr sente le diagramme de d ploiement sur le cluster de Sup lec Metz Le Server d ploie les SubServers et les Workers sur les processeurs du cluster lt lt processeur gt gt lt lt processeur gt gt Server SubServer lt lt Ethernet gt gt 1 0 lt lt processeur gt gt Worker lt lt Ethernet gt gt 1 0 lt lt Ethernet gt gt lt lt processeur gt gt Serveur de base de donn es Figure 7 1 Diagramme de d ploiement sur le cluster de Sup lec 7 2 Diagramme de classes de l application utilisant PicsouGrid La figure 7 2 contient le diagramme de classe UML de l application 30 Ce diagramme est s par en 2 parties e La partie PicsouGrid qui g re le d ploiement et la tol rance aux pannes e La partie application qui calcule les options europ ennes dans notre exemple L utilisateur d veloppe des classes qui h ritent de certaines classes de PicsouGrid pour b n ficier de la distribution des calculs et de la tol rance aux pannes Il doit obligatoirement cr er des classes h ritant des classes suivantes Server SubServer Worker Init et Result voir figure 7 2 La classe h ritant de Init permet de cr er des objets stockant les donn es initiales n cessaires aux calculs et de les envoyer aux SubServers et aux Workers La classe h ritant de Result permet de cr er les objets contenant les r sultats des calculs S il en a besoin l utilisateur peu
86. e PicsouGrid 5 6 3 M canismes int gr s aux middlewares sous jacents Pour am liorer l efficacit de la tol rance aux pannes on peut associer les m canismes d velopp s aux niveaux applicatif et de PicsouGrid aux m canismes existants d j dans les middlewares sous jacents ProActive et Jini JavaSpaces Nous n avons pas exp riment s les m canismes de tol rance aux pannes de ProActive car ces aspects de ProActive taient eux m mes en fin de d veloppement pendant ce stage Dans sa version actuelle la r cup ration sur pannes entra ne un surco t de temps de calcul important car tous les objets de l architecture sont relanc s suite la panne d un seul objet Apr s discussion avec les auteurs de ProActive la future version devrait permettre de limiter la r cup ration sur pannes un ensemble d objet comme par exemple un SubServer et son groupe de Workers et tre bien adapt e aux besoins de PicsouGrid A l oppos Jini JavaSpaces constitue une sp cification logicielle relativement fig e mais propose des m canismes de tol rance aux pannes compl mentaires ceux que nous avons d velopp s On peut tout d abord lancer les services Jini en mode activable donc si les processus contenant ces services disparaissent le rmid les relance voir chapitre 4 De plus si on active la persistance les services sauvegardent toutes leurs donn es Ainsi si un JavaSpace tombe en panne il est relanc et il r cup
87. e cr er leur groupe de Workers e La m thode startControl d marre la d tection des pannes e Un SubServer SubServerDeblock est cr pour r soudre un probl me technique expliqu la section 5 8 2 gr ce la m thode factorySubServer d finie dans la classe fille pour cr er un objet actif de type UserSubServer 7 3 1 3 La m thode createGroupSubServer Nous allons analyser la m thode createGroupSubServer appel e dans la m thode startDeploy cr ation des SubServers classe Server public USS createGroupSubServer cr ation du groupe de SubServers USS subservers factoryGroupSubServer cr ation du groupe d objets de type Aliv try alives Alive ProActiveGroup newGroup Alive class getName catch ClassNotReifiableException e setMessage Erreur lors de la creation du groupe Alive error e catch ClassNotFoundException e setMessage Erreur lors de la creation du groupe Alive error e cr ation des groupes standards pour y mettre les objets Alive et UserSubServer groupSubServers ProActiveGroup getGroup subservers Page 74 Grille de calculs groupAlives ProActiveGroup getGroup alives for int i 0 i lt nbSubServers i USS subserver factorySubServer i Alive alive null try alive Alive ProActive newActive Alive class getName new Object new ContainerInt i nodes i catch Ac
88. e transMng 1000 Transaction transaction trFac transaction lancement d un thread avec la r f rence du lease de la transaction leaserenew new Leaserenew trFac lease leaserenew start Page 37 Grille de calculs patron cr pour prendre un objet EmployeeEntry contenant le nom John EmployeeEntry template new EmployeeEntry template name John EmployeeEntry employeeJohn EmployeeEntry space take template transaction Long MAX VALUE ex cution d une m thode mettant jour la fiche de l employ John EmployeeEntry employeeJohnUpgrade upgradeJob employeeJohn criture de l objet dans le JavaSpace pour une dur e illimit space write employeeJohnUpgrade transaction Lease FOREVER thread stopp leaserenew null transaction valid transaction commit classe permettant la cr ation d un thread class Leaserenew extends Thread private Lease lease public Leaserenew Lease lease this lease lease thread renouvelant le lease de la transaction public void run Thread thisThread Thread currentThread while leaserenew thisThread try lease renew 1000 Thread sleep 400 catch Exception e System err println Erreur e getMessage e printStackTrace j Le thread se r veille toutes les 400 millisecondes et renouvelle le lease de la transaction en le mettant nouveau une seconde Le schedule
89. e valeur ne soit connue il sera bloqu Ce m canisme appel wait by necessity permet au programme de se poursuivre jusqu au moment o il aura r ellement besoin du r sultat c est une communication asynchrone entre objets Le r sultat doit tre s rialisable pour traverser le r seau De plus ce m canisme ne peut fonctionner que si l objet r sultat est r ifiable au sens de ProActive C est dire s il respecte les trois points suivants e il pest pas de type primitif boolean int float e la classe de l objet n a pas l attribut final et ne poss de pas de m thode de type final e il a une m thode constructeur vide et sans argument Page 17 Grille de calculs Si on souhaite retourner un r sultat de type primitif il faut l encapsuler dans un objet r ifiable voir l exemple de la section 3 7 La figure 3 1 extraite de la documentation ProActive nous montre que les m thodes des objets actifs peuvent tre facilement appel es par d autres objets se trouvant sur une autre JVM de la m me machine ou d une autre machine Sequential Multithreaded Distributed lt e Q ST ER A lER A Legend Fe Network Host Es Java Virtual Machine CD passive Object O Active Object Figure 3 1 Mod le ProActive extraite de la documentation web de ProActive 3 4 Cr ation d un objet actif 3 4 1 Cr ation l instanciation Nous allons illustrer la cr ation d un objet actif en con
90. ecture logicielle PicsouGrid 40 5 4 M canismes de d ploiement de PicsouGrid snssesossssesseesreseosseeseessressesee 42 5 5 M canismes quilibrage de charge anne en sen nt ne 43 5 5 1 Strat gie au niveau applicatif 4 4 nette nent 43 5 5 2 Exemple d mis en oGUViEsniirernisiiipsis sks EEEa n KEARE 45 5 6 M canismes de tol rance aux pannes 46 5 6 1 Strat gie collaboration multi niveaux 46 5 6 2 M canismes au niveau de PicsouGrid 47 5 6 3 M canismes int gr s aux middlewares sous jacents 49 5 64 M canismes au niveau applicatif 50 5 7 Utilisation des classes generics Java 1 5 asser asian 50 5 7 1 Principe des generics SN SR nn dan 50 5 7 2 Architecture logicielle g n rique de PicsouGrid sssnnssseseseesseseeeseesee 51 5 7 3 Autre solution sans les generics nina nantais 55 5 8 Bilan des difficult s techniques rencontr es nn snenneesessseeseeseesseesseserssresseseee 55 5 8 1 Probl me r solu entre ProActive et Jini JavaSpaces 55 5 8 2 Probl mes rencontr s avec les groupes de ProActive ssssessssseesseeseesee 56 5 8 3 Probl me rencontr entre les generics et ProActive ssssesssssesesseseessee 57 VI Plateforme d exp rimentation et exemple d application
91. ent des services Jini voir chapitre 4 Il est donc simple d enclencher ou non ces m canismes Cependant ils ont tous un co t en terme de temps d ex cution Dans notre application nous avons test les services Jini non activables et non persistants et ensuite des services persistants et activables puis nous avons exp riment les transactions pour ces deux modes voir chapitre 8 Globalement nous conseillons les services Jini persistants et activables car ils sont tol rants aux pannes des processus et ils n entra nent pas beaucoup de surco t de temps d ex cution si l application ne place beaucoup d objets dans le JavaSpace 5 64 M canismes au niveau applicatif Pour que les m canismes de tol rance aux pannes au niveau de PicsouGrid puissent fonctionner il est n cessaire que l utilisateur d veloppe un minimum de m thodes dont nous avons parl la section 5 6 2 e fournir les donn es d initialisation des calculs dont la taille des t ches lorsqu il faut lancer un nouveau SubServer ou un nouveau Worker pendant les calculs suite une panne e stocker le nombre de t ches restantes ex cuter pour chaque SubServer et le fournir un nouveau SubServer rempla ant un SubServer en panne e stocker les r sultats partiels de chaque SubServer et les fournir un nouveau SubServer rempla ant un SubServer en panne D autre part pour utiliser les m canismes de tol rance aux pannes des JavaSpaces l utilisateur
92. er les pannes machines de r serve L encadr Messages de l interface de la figure 5 2 nous indique que 30 n uds ont t d ploy s et qu il reste 2 machines de r serve car 28 n uds sont occup s par des objets actifs 2 SubServers et 26 Workers Le fichier XML de d ploiement doit pr ciser quel protocole de connexion est utilis pour joindre les machines rlogin rsh ou ssh Les machines du cluster de Sup lec et de Grid 5000 fonctionnent avec le syst me d exploitation Linux qui acceptent ses protocoles Par contre pour des machines fonctionnant avec le syst me d exploitation Windows il faut trouver payant et installer un serveur d mon rsh ou ssh car il n est pas inclus par d faut Les services Jini JavaSpaces ne sont lanc s que s ils sont activ s depuis l interface graphique du Server avant le d ploiement de l architecture PicsouGrid Pour lancer les services Jini l utilisateur doit fournir les fichiers de configurations Ces fichiers sont assez simples cr er le chapitre 4 nous fait une analyse de quelques exemples de fichiers de configuration que nous avons utilis s pour tester l application utilisant PicsouGrid Mais si l utilisateur n a pas pr vu leur utilisation dans ses calculs il n a pas besoin de fournir ces fichiers de configurations Si on analyse l interface graphique de la figure 5 2 on remarque que la case JavaSpaces d sactiv s est coch e donc lors du d ploiement le
93. ermet au nouveau Worker de trouver le JavaSpace s il a t lanc en lui fournissant l adresse de la machine h te du SubServer S il n y a plus de machines de r serve un Worker fictif est cr pour r soudre un probl me de gestion des groupes d crit la section 5 8 2 Page 83 Grille de calculs 7 3 3 Classe g n rique Worker La m thode findJavaSpace permet au Worker de rechercher la r f rence du JavaSpace Elle est identique la m thode getSpace de la classe SubServer d crite la section 7 3 2 2 La m thode findTransaction permet au Worker de rechercher la r f rence du Transaction Manager pour effectuer des transactions public TransactionManager findTransaction String transName lookupAddress SecurityManager pour autoriser le t l chargement de cod if System getSecurityManager null System setSecurityManager new RMISecurityManager construction d un patron pour rechercher le Transaction Manager Class types TransactionManager class Entry l attributes new Name transName ServiceTemplate template new ServiceTemplate null types attributes TransactionManager transMng null try recherche du service Look up LookupLocator lookup new LookupLocator jini lookupAddress ServiceRegistrar registrar lookup getRegistrar recherche du Transaction Manager dont le nom est l adresse de 1a machine transMng Transac
94. erver cr e un objet actif SpaceSubServer qui s enregistre localement pour permettre un autre objet se trouvant sur une autre JVM d obtenir une r f rence sur cette objet et ensuite d utiliser ses m thodes utilisation de ProActive lookupActive voir section 3 4 4 Le SubServer est cr distance depuis le Server donc il ne peut tre enregistr car l op ration d enregistrement ne s effectue que pour des objets actifs cr s localement Pendant une Page 55 Grille de calculs phase de calcul le SubServer envoie au SpaceSubServer les donn es initiales pour effectuer les calculs le SpaceSubServer crit ces donn es dans un fichier puis il lance dans une autre JVM l objet classique non ProActive SpaceCalculate qui r cup re les donn es du fichier Le SpaceCalculate recherche la r f rence du JavaSpace se trouvant dans une troisi me JVM gr ce au look up il place les donn es initiales et les t ches dans ce JavaSpace et attend les r sultats Parall lement chaque objet actif Worker lance un objet non ProActive Worker dans une autre JVM Cet objet recherche la r f rence du JavaSpace il r cup re les donn es et les t ches puis il effectue les calculs et enfin crit le r sultat dans le JavaSpace Lorsque le SpaceCalculate r cup re la totalit des r sultats il recherche l objet actif SpaceSubServer se trouvant sur l autre JVM gr ce la m thode lookupActive de ProActive ensuite il envoie cette
95. es classes user mais sans renoncer la g n ralisation des classes de PicsouGrid et sans imposer de noms particuliers pour les classes user Les classes generics nous ont permis d atteindre cet objectif Les classes de PicsouGrid sont devenues des classes generics sorte de templates voir section 5 7 1 Les classes sont param tr es par des classes user voir figure 5 9 Page 53 Grille de calculs generics generics Server lt USS gt Sub Server lt UW gt A lt lt bind gt gt Sn Server lt UserSub Server gt SubServer lt UserWorker gt Worker Bactory Bactory A A A UserServer UserSubServer Bactory Bactory UserWorker Figure 5 9 Diagramme de classe avec les generics Les m thodes factory des classes UserServer et UserSubServer restent les m mes Par contre le type de l objet cr dans les classes Server et SubServer est diff rent USS UserSubServer ou UW User Worker Dans la classe Server on a USS subserver factory Dans la classe SuServer on a UW worker factory Maintenant les associations des classes de PicsouGrid se fait avec des classes user bien pr cises Ainsi les classes de PicsouGrid sont sp cialis es pour les calculs de l utilisateur et permettent beaucoup plus de v rification de coh rence
96. es objets pourront facilement obtenir une r f rence sur cet objet et appeler ses m thodes voir section 3 4 4 e La m thode setImmediateService de ProActive permet de rendre prioritaire une m thode pour un objet actif L objet actif server poss de 5 m thodes prioritaires sur les autres Ainsi pendant que le Server ex cute sa m thode de calcul simulate les SubServers peuvent l interrompre pour ex cuter une de ses m thodes prioritaires Ce m canisme est essentiel pour permettre aux SubServers d envoyer leurs r sultats partiels pendant les calculs checkpointing et ainsi de faire face une panne d un SubServer voir section 5 6 2 De plus un SubServer peut aussi envoyer au Server pendant une tape de calculs la nouvelle r f rence de son groupe de Workers suite au remplacement d un Worker tomb en panne donc si ce SubServer tombe aussi en panne pendant la m me p riode de calculs le nouveau SubServer recevra la r f rence jour du groupe de Workers de l ancien SubServer e La m thode startInterface permet de cr er un objet InterfaceGraphic voir section 5 4 Page 71 Grille de calculs 7 3 1 2 La m thode startDeploy La m thode startDeploy permet de d ployer toute l architecture de PicsouGrid et de son application L objet InterfaceGraphic a cr une interface qu une personne utilise pour indiquer le nombre de SubServers et de Workers d ployer voir section 5 4 Cet objet a obtenu
97. es pour faire rapidement et simplement des calculs distribu s par m moire partag e Ils s int grent parfaitement dans le langage Java sans entra ner la moindre limite Page 39 Grille de calculs V Architecture logicielle du projet 5 1 Principaux concepts de l architecture logicielle PicsouGrid Nous avons d velopp une premi re architecture logicielle de grille lors d un premier stage en 2005 22 Cette architecture tait con ue pour s appliquer un calcul financier tr s simplifi Elle ne contenait pas de classes generics de Java 1 5 ni de JavaSpaces Un d but de tol rance aux pannes en vue de respecter des contraintes de temps avait toutefois t implant Durant ce stage ing nieur nous avons d cid de concevoir une architecture suffisamment g n rale pour distribuer une grande vari t de calculs financiers ou scientifiques L architecture PicsouGrid que nous avons d velopp e peut se d ployer rapidement sur un cluster ou une grille multi sites Les communications peuvent tre r alis es par envoi de messages gr ce ProActive ou par m moire partag virtuelle gr ce aux JavaSpaces Les deux paradigmes sont mis la disposition des utilisateurs pour leur permettre d utiliser celui qui s adaptera le mieux leurs calculs Cette architecture est aussi g n rique en ce sens qu elle permet un utilisateur d y inclure ses propres classes de calcul PicsouGrid fournit un ensemble de classes
98. eut tre utilis par un autre objet se trouvant sur un autre n ud Mais pour cela il faut qu il soit enregistr gr ce la m thode register de ProActive Cette op ration d enregistrement ne peut se faire que localement sur le n ud o est cr l objet Par exemple un objet Obj_a est cr localement sur la machine sh00 A Obj_a A ProActive newActive A class getName params Ensuite il est enregistr sur la machine sh00 avec l identifiant TheOb _ a ProActive register 0Obj_ a localhost TheOb j_a L objet distant utilise alors la m thode lookupActive pour rechercher l objet Obj_a identifi TheObj_a et obtenir une r f rence sur celui ci Par exemple on ex cute sur la machine sh01 A Obj_ al A ProActive lookupActive A class getName Sh00 TheOb j_a Page 19 Grille de calculs Donc ce stade pour retrouver un objet actif il faut conna tre l adresse du n ud qui l h berge 3 5 Concept de groupe d objets ProActive permet de construire des groupes d objets Ces objets doivent tre de m me type c est dire appartenir la m me classe ou bien des classes filles de la m me classe m re et peuvent tre actifs ou passifs On peut alors faire un appel de m thode sur le groupe et obtenir un groupe de r sultats Cependant la m thode appel e doit tre exactement la m me elle doit tre commune tous les ob
99. fi s Workers et objets Alive server setNewGroupWorkers workers numSub server setNewGroupAlives alives numSub server setMessage Un Worker est cree sur la machine nodes num getNodelnformation getHostName catch Exception e f server setMessage Le nouveau Worker n a pas pu etre cree sur la machine de reserve error e s il ne reste pas de n ud de r serve else Living vectorLiving get i setBool false cr ation d un Worker fictif try UW newWorker factoryWorker Alive newLive Alive ProActive newActive Alive class getName new Object new ContainerInt i ProActive setImmediateService newWorker stopWork newWorker setFictif true ProxyForGroup groupWorkers set i newWorker ProxyForGroup groupAlives set i newLive if calculateLaunch ProxyForGroup groupResultsWorkers set i UW groupWorkers get i simulate catch Exception e f server setMessage Le Worker fictif n a pas pu etre cree error e Le SubServer demande l objet poolnode un num ro de n ud et cr e un nouveau Worker et un objet Alive en suivant le m me m canisme implant pour le Server voir section 7 3 1 La m thode setNewGroupWorkers permet d envoyer au Server le groupe de Workers modifi voir section 5 6 2 La m thode setNewGroupAlives permet d envoyer au Server le groupe d objets Alive modifi La m thode findJavaSpace p
100. g Ce terme regroupe l ensemble des techniques permettant d utiliser plusieurs supercalculateurs au sein d une m me application en tenant compte des temps de communication sur les r seaux WAN Ainsi le projet am ricain CASA a permis la distribution de simulations intensives de ph nom nes chimiques et m t orologiques sur plusieurs supercalculateurs travers un r seau Gigabit 1990 1995 voir figure 1 3 L objectif tait de comprendre l impact des r seaux rapides longue distance sur le calcul intensif et de tester des algorithmes et des implantations de calculs intensifs distribu s sur de grandes distances Ce projet a montr la n cessit de concevoir un middleware de grille pour prendre en charge et masquer l utilisateur l h t rog n it des environnements informatiques de chaque n ud du syst me Il a aussi montr l efficacit des grilles pour les calculs distribu s 5 INTEL O PIE TETE HIRR AG MACHINE 5 CI E D Figure 1 3 Le projet CASA Ensuite gr ce au projet GUSTO Globus Ubiquitous Supercomputing Testbed Organization une grille exp rimentales compos e de 125 sites r partis sur 23 pays a t cr e pour tester les premiers prototypes de middleware de grille 1995 2000 Cette grille fut un des plus grands syst mes de calcul distribu jamais construit et montra la faisabilit d une architecture tr s grande chelle Le projet europ en Data GRID a
101. harge dynamique pour garder de bonnes performances sur un environnement h t rog ne La structure hi rarchique de l architecture Server SubServers et Workers permet d effectuer un quilibrage de charge entre le Server et les SubServers et entre chaque SubServer et son groupe de Workers Dans chaque cas l quilibrage de charge peut tre statique ou dynamique Nous avons donc 2 possibilit s d quilibrage de charge entre le Server et ses SubServers et 2 possibilit s entre un SubServer et ses Workers l a Un quilibrage de charge statique entre le Server et ses SubServers le Server distribue le nombre total de simulations de Monte Carlo N effectuer en le divisant par le nombre de SubServers P ainsi chaque SubServer r alise N P simulations r partition id ale avec des machines homog nes 1 b Un quilibrage de charge dynamique entre le Server et ses SubServers le Server g re une r serve de t ches l mentaires contenant toutes un nombre identique n de simulations de Monte Carlo qu il distribue progressivement aux Workers Pour obtenir un provisionning efficace des SubServers le Server distribue au d part un certain nombre de t ches chaque SubServer en fonction de la taille de son groupe de Worker puis chaque SubServer redemande des t ches au Server lorsqu il ne lui en reste presque plus donner ses Workers provisionning dynamique et par anticipation Ainsi les SubServers les plus rapides a
102. ines des machines r serv es soient aussi attribu es un autre utilisateur cause de dysfonctionnement du syst me de r servation C est pourquoi nous avons d cid d utiliser le d ploiement d image Linux pour effectuer nos exp riences Il faut commencer par cr er sa propre image Linux partir d une image standard d j disponible On installe donc une image standard sur une machine et on la modifie On cr e son compte utilisateur dans cette image on y place tout ce dont on a besoin installation de Java Jini ProActive et de notre architecture PicsouGrid On sauvegarde cette nouvelle image et on l enregistre sur chaque cluster dont on veut utiliser les machines gr ce la commande karecordenv 29 On peut ensuite d ployer notre image sur les machines r serv es Exemple kadeploy e fedoraGrid m grillon l nancy grid5000 fr p sda3 Dans cet exemple on d ploie notre image appel e fedoraGrid sur la partition sda3 d une machine du cluster de Nancy attribu e lors d une r servation 6 2 4 Probl mes techniques rencontr s Durant les mois pass s exp rimenter PicsouGrid et ses applications sur Grid 5000 nous avons rencontr quelques difficult s r currentes e Tout d abord notre image Linux ne peut fonctionner que sur des machines poss dant un processeur AMD Opteron donc elle peut tre d ploy e seulement sur 7 sites et non sur les 9 sites de Grid 5000 e Nous avons ensuite rencontr
103. isables et impl menter l interface net jini core entry Entry Ils doivent avoir un constructeur public sans argument et des attributs publics de type non primitif De plus il est possible d effectuer des transactions en regroupant un ensemble d op rations par exemple take et write qui sont toutes ex cut es ou bien toutes annul es si l une d elle n aboutit pas Page 27 Grille de calculs Il existe deux principaux modes de fonctionnement un mode transient les objets ne sont enregistr s qu en m moire si le JavaSpace tombe en panne les objets sont perdus un mode persistant les objets sont crits sur le disque ils sont donc disponibles m me apr s une panne Il est aussi possible de rendre un JavaSpace activable ou non activable S il est activable et si on a lanc un RMI daemon rmid le JavaSpace sera relanc automatiquement en cas de panne Pour pouvoir utiliser un JavaSpace il faut d abord lancer un serveur http pour le chargement dynamique des classes n cessaires au fonctionnement des services un service Jini de Look up pour enregistrer les services l impl mentation de Sun s appelle reggie et enfin le JavaSpace l impl mentation de Sun s appelle outrigger 21 Pour effectuer des transactions un service sp cifique doit tre lanc le Transaction Manager l impl mentation de Sun s appelle mahalo Transaction Manager service JavaSpace service Look up service sert
104. ismologiques pour la prospection p troli re e SGCIB branche de la Soci t G n rale calculs de risques sur une ferme de serveurs g r e par le logiciel de grille de Platform Computing 1 5 2 Les obstacles Avant de pouvoir utiliser le concept de grille les entreprises doivent souvent surmonter un certain nombre d obstacles Toutes les applications ne se pr tent pas au calcul distribu Ainsi il n est pas toujours possible de parall liser des t ches lorsque le programme original n a pas t con u dans cette optique Cela demande d entreprendre un travail souvent lourd et fastidieux pour d velopper nouveau l application L utilisation d une grille r partie sur plusieurs sites comporte plusieurs obstacles les probl mes de s curit le temps de transfert des donn es et la qualit de service sur les liaisons longues distances l harmonisation des proc dures de sauvegarde ou le refus des employ s de mutualiser leur PC de bureau 1 5 3 Les produits industriels Plusieurs grandes soci t s comme IBM Oracle et Sun Microsystems proposent des solutions industrielles De nombreuses jeunes soci t s informatiques se sont aussi lanc es dans la conception de grilles industrielles Avaki Axceleon Entropia Grid Infrastructure GridSystems Parabon United Devices etc Certaines entreprises se sont sp cialis es dans les grilles pour le monde de la finance comme Data Synaspe et Platform Computing Oracle u
105. jets du groupe appartenir la classe m re si ils sont de classes diff rentes De plus les objets du groupe doivent tre r ifiables ainsi que les objets r sultats car le groupe de r sultats est obligatoirement construit avec des objets futurs 19 On utilise la m thode ProActiveGroup newGroup pour cr er un groupe et obtenir une repr sentation fonctionnelle du groupe du m me type que les objets composant le groupe propre ProActive En revanche la m thode ProActiveGroup getGroup appel e avec la repr sentation fonctionnelle permet d obtenir une repr sentation standard du groupe Cette repr sentation standard de type Group utilise l interface Collection de Java qui fournit des m thodes tr s utiles telles que add remove size On utilise la repr sentation fonctionnelle pour appeler les m thodes de groupe et la repr sentation standard pour modifier la composition du groupe voir section 3 7 pour un exemple 3 6 M canisme de d ploiement ProActive fournit une fonctionnalit tr s pratique pour r pandre rapidement des objets actifs sur de nombreuses machines On utilise un fichier XML pour d crire le d ploiement de l application On d finit l int rieur de ce fichier tous les param tres n cessaires ProActive pour cr er les machines virtuelles et les n uds sur les ordinateurs distants Le fichier commence par un XML Namespaces xmins un espace de nommage associ une URL pour l i
106. l internet a i MD marrer J 3 S H O A LA Bo te de r ception Out C U M moire Java Userworker java R M moire info doc Micr _ GanttChart Microso X amp DJO 16 32 Figure 6 3 DrawOARGantt interface web de Grid 5000 tat temporel de la grille Page 66 Grille de calculs Enfin OAR Grid est une surcouche de OAR qui permet la r servation de n uds sur l ensemble de la grille Les n uds peuvent donc tre r partis sur plusieurs clusters de Grid 5000 Exemple oargridsub w 1 30 00 gdx nodes 4 nancy nodes 2 parasol nodes 2 Dans cet exemple on r partie 8 n uds sur 3 clusters de 3 sites diff rents pendant 1 heures et 30 minutes La r servation est faite en mode de soumission interactif mais il est aussi possible de la faire en mode de soumission passif en sp cifiant un script 6 2 3 D ploiement d image Linux L environnement Linux fourni sur chaque n ud r serv contient notre compte utilisateur mont par NFS Donc si pendant les calculs l architecture PicsouGrid a besoin d une classe pour cr er un objet ou si elle veut utiliser un fichier les fichiers n cessaires sont envoy s par le serveur NFS depuis le compte local du site ce qui entra ne un surco t de temps d ex cution De plus nous ne sommes pas absolument certain d tre le seul utilisateur utiliser ces machines car si on ne d ploie pas d image il est possible que certa
107. lasse comme une classe ou une interface classique et l instance de cette classe est partag e entre toutes les invocations 24 25 5 7 2 Architecture logicielle g n rique de PicsouGrid Principes de base 6 classes fondamentales e 1 classe Server au niveau PicsouGrid e 1 classe UserServer au niveau applicatif code user e 1 classe SubServer au niveau PicsouGrid e 1 classe UserSubServer au niveau applicatif code user e classe Worker au niveau PicsouGrid e 1 classe UserWorker au niveau applicatif code user Les classes utilisateur user h ritent des classes PicsouGrid pour r cup rer automatiquement et de mani re la plus transparente possible les fonctionnalit s de d ploiement distribution des calculs et tol rance aux pannes de PicsouGrid voir figure 5 6 Server SubServer Worker A A A UserServer UserSubServer UserWorker Figure 5 6 Diagramme des 6 classes fondamentales Pour un fonctionnement normal de notre grille il serait simplement n cessaire d ins rer du code de calcul et d agr gation des r sultats dans les classes user Page 51 Grille de calculs Donc un simple cha nage des classes PicsouGrid par association suffirait pour faire fonctionner l ensemble voir figure 5 7 Server SubServer Worker A l A
108. loyeeJohnUpgrade transaction Lease FOREVER transaction valid transaction commit Une transaction est cr e au d part avec une dur e maximum un lease d une seconde 1000 millisecondes donc partir de sa cr ation et jusqu au commit la dur e des op rations ne peut d passer une seconde Si cette dur e d passe une seconde avant d arriv e au commit parce que l ex cution de la m thode upgradeJob employeeJohn demande plus de temps alors le Transaction Manager remet l objet EmployeeEntry dans le JavaSpace et le write se met en erreur car la transaction n existe plus Si la dur e de la m thode upgradeJob EmployeeEntry employee varie beaucoup d une ex cution une autre il est alors difficile de pr voir une dur e pour la transaction Une solution ce probl me consiste renouveler sans cesse le lease de la transaction dans un thread Ainsi la m thode peut s ex cuter pendant un temps variable sans mettre fin la transaction et si le programme tombe en panne le lease n est pas renouvel donc l objet EmployeeEntry est remis dans le JavaSpace private Leaserenew leaserenevw recherche du JavaSpace et du Transaction Manager JavaSpace space getSpace sh00 metz supelec fr TransactionManager transMng findTransaction sh00 metz supelec fr cr ation d une transaction dont la dur e ne peut d passer 1 second Transaction Created trFac TransactionFactory creat
109. mbre de Workers inf rieur 40 voir section 8 1 3 Nous avons test l application lorsqu elle fonctionne en mode ProActive et lorsqu elles utilisent 4 modes diff rents des JavaSpaces voir chapitre 4 e JavaSpace non activable et non persistant e JavaSpace activable et persistant e JavaSpace non activable non persistant et associ aux transactions e JavaSpace activable persistant et associ aux transactions Option sur panier avec 10 millions de simulations e JavaSpace s JavaSpace activable lJavaSpace avec transaction x JavaSpace activable avec transaction Speed up x ProActive S P P 0 5 10 15 20 25 30 Nombre de Workers Figure 8 3 Speed up de l application pour diff rents modes JavaSpace et ProActive Page 94 Grille de calculs Option sur panier avec 10 millions de simulation 110 100 JavaSpace 90 80 s JavaSpace activable a 70 60 a JavaSpace avec 50 transaction wW 40 _ JavaSpace activable avec 30 transaction 20 x ProActive 10 0 0 5 10 15 20 25 30 Nombre de Workers Figure 8 4 Efficacit de l application pour diff rents modes JavaSpace et ProActive Les figures 8 3 et 8 4 montrent que l application utilisant PicsouGrid poss de une efficacit identique lorsqu elle fonctionne en utilisant ProActive ou un Jav
110. n cessaires au fonctionnement d un JavaSpace sur une m me machine On commencer par cr er un fichier de politique de s curit jsk all policy grant permission java security AllPermission Ce fichier de politique de s curit est obligatoire pour lancer les diff rents services et utiliser Jini JavaSpaces Dans cet exemple on autorise un acc s tous les fichiers mais on peut param trer un acc s limit certains fichiers ou r pertoires On cr e ensuite un fichier de configuration du service Look up reggie config exemple de configuration du Look up sans param tre pr cis com sun jini reggie Pour cet exemple on ne pr cise aucun param tre il est possible de d en mettre voir la section 4 4 On fait de m me avec le fichier de configuration du JavaSpace outrigger config import net jini core entry Entry import net jini lookup entry Name exemple de configuration du JavaSpace nomm grid com sun jini outrigger initialLookupAttributes new Entry new Name grid On donne dans ce fichier un nom au JavaSpace pour le distinguer d un autre JavaSpace Le service de look up envoie r guli rement un appel sur le r seau pour enregistrer tous les services D s lors les JavaSpaces nomm s seront clairement enregistr s et il sera plus facile d utiliser le bon JavaSpace Enfin on param tre le fichier n cessaire au lancement sur la m me machine du serve
111. n 5 6 2 7 3 1 5 La m thode run La m thode startControl appel e dans la m thode startDeploy permet de lancer un thread g rant la tol rance aux pannes Ce fhread ex cute la m thode run que nous allons analyser d tection des pannes classe Server public void run Thread thisThread Thread currentThread ContainerInt cont new ContainerInt nbSubServers while control thisThread for int i 0 i lt groupAlives size i appelle de m thode sur chaque objet Alive try cont i Alive groupAlives get i getLive catch Exception e si l objet Alive ne peut tre joint remplacement du SubServer se trouvant sur la m me machine if vectorLiving get i getBool true setMessage Un SubServer a disparu createNewSub i try pause entre chaque contr le de panne du groupe Thread sleep nbTimeFaultTolerance catch InterruptedException e Page 76 Grille de calculs La m thode getLive de chaque objet Alive du groupe est ex cut e et renvoie un objet de type Containerint ainsi la m thode est asynchrone car un objet futur est utilis en attendant le r sultat voir section 3 3 Si l objet ne peut tre atteint car la machine l h bergeant est en panne une exception se produit Si l objet est not comme vivant dans le vecteur vectorLiving la m thode createNewSub int i est ex cut e pour cr er un nouveau SubServer
112. ncontre aucun probl me Si la m thode factorySubServer d velopp e dans la classe UserServer cr e un objet normal et non un objet actif subserver new UserSubServer la m thode calculate renvoie bien un UserResult car au d but de la classe UserSubServer il est pr cis que le param tre generics UR correspond un UserResult voir code source de SubServer et UserSubServer ci dessus Nous avons aussi test l utilisation de la solution base de Class forName voir section 5 7 3 mais le probl me reste le m me d s que l on cr e des objets actifs Donc pour pallier ce probl me de Stub de ProActive nous obligeons l utilisateur d finir dans ses classes filles des m thodes n cessaires au fonctionnement de PicsouGrid setDeblock getGroupWorkers setFictif calculate et simulate Les deux m thodes calculate et simulate renvoient un objet de type UserResult mais si elles sont plac es dans les classes m res ProActive cr e un Stub de type Result Donc elles sont plac es dans les classes filles pour r soudre le probl me Cependant ces deux m thodes utilisent les m thodes setDeblock et setFictif pour r soudre les deux probl mes d crits la section 5 8 2 gestion des groupes pendant les calculs ces deux derni res m thodes doivent donc tre aussi plac es dans les classes filles pour obliger l utilisateur g rer ces probl mes Enfin la m thode getGroupWorkers renvoie un
113. nne il r cup re le r sultat partiel envoy par le Server En mode JavaSpace les t ches sont plac es dans le JavaSpace gr ce la m thode write voir chapitre 4 La m thode simulate est ex cut e sur le groupe de Workers En mode JavaSpace le SubServer attend les r sultats gr ce la m thode take Gr ce la m thode setServerPartialResult le SubServer envoie ses r sultats partiels et obtient de nouvelles t ches La m thode stopWork permet de stopper les Workers pendant leurs calculs 7 4 3 Classe UserWorker La m thode simulate permet de calculer l option demand e traitement des calculs classe UserWorker public UserResult simulate stop false UserResult result new UserResult 0 0 0 0 0 en mode JavaSpace sans transaction if runSpace if stateSpace lt 2 UserTask template new UserTask while true UserTask task null r cup ration des t ches s il y en a try task UserTask space takeIfExists template null 0 catch Exception e System err println Erreur e getMessage if task null break nbMC task nbSimulations intValue calculs effectu s if typeCalcul 1 result optionSimple criture des r sultats try space write result null Lease FOREVER catch Exception e System err println Erreur e getMessage Page 90 Grille de calculs en mode JavaSpace avec
114. nt r guli rement au Server leurs r sultats partiels et leur point d avancement checkpointing A nsi le Server transmet au nouveau SubServer le nombre de t ches non r alis es par l ancien SubServer et le dernier r sultat partiel re u du SubServer perdu et le SubServer poursuit les calculs sans recommencer depuis le d but Si on augmente la fr quence du checkpointing on r duit les pertes de temps mais on augmente les communications L utilisateur fixera aussi cette fr quence en fonction des performances de son r seau voir section 5 6 4 Lorsqu un Worker ou un SubServer est remplac pendant des calculs il faut fournir un nouveau Worker ou SubServer les donn es initiales n cessaires aux calculs Le Server sauvegarde une copie de la composition de tous les groupes de Workers et si un Worker est remplac dans un groupe le SubServer g rant ce groupe envoie la copie du groupe transform au Server Lorsqu un nouveau SubServer est cr le Server lui transmet la copie jour du groupe de Worker du SubServer en panne Le nouveau SubServer peut alors relancer des calculs sur son groupe de Workers mais en p riode de calcul il doit d abord stopper tous ces Workers car ceux ci sont pour la plupart toujours en train d ex cuter une t che demand e par le SubServer tomb en panne De plus le nouveau SubServer doit lancer les services Jini avant de commencer tout travail s ils ont t activ s au d marrage de PicsouGrid v
115. nth se 17 Parmi les premiers utilisateurs surtout pour des besoins en calculs intensifs on peut citer e Boeing analyses statistiques pour la conception d engins utilisant une grille form e d un supercalculateur SGI d un cluster Linux et de deux serveurs SUN e Browne amp Co fournisseur d informations financi res projet pilote de grille de serveurs et de PC sous Windows pour faire tourner un module d une application de composition automatique Diversa recherche pharmaceutique f d ration de clusters pour l tude de prot ines EADS simulation num rique pour l ing nierie sur les projets Airbus EDF simulation de m canique et de dynamique des fluides pour le r seau lectrique GlaxoSmithKline utilisation de la puissance de plusieurs centaines de postes de travail de la soci t au Royaume Uni en Italie et aux Etats Unis pour la recherche mol culaire Page 13 Grille de calculs e JP Morgan Chase projet Compute Backbone pour faire tourner des applications de courtage et de gestion de risques e Monsanto calcul distribu sur plusieurs clusters et PC de bureau pour la recherche g n tique dans le domaine agricole e Novartis AG groupe pharmaceutique suisse utilisation de 2 700 PC de bureau pour des calculs de prot ines e Pratt amp Whitney calculs de simulations moteurs d avions sur un r seau de plusieurs stations de travail r parties sur trois sites e Shell analyses s
116. ocess gt lt processDefinition gt lt processes gt lt infrastructure gt Il faut faire attention un point important en ce qui concerne ce fichier XML En principe une machine virtuelle recherche des classes en se r f rant au classpath du syst me d exploitation Mais lorsque des objets actifs cr s sur un n ud ont besoin des classes d un projet pour instancier des objets l adresse du projet doit tre pr cis e dans le classpath du processus de cr ation de la machine virtuelle et du n ud du descripteur de d ploiement En fait la machine virtuelle cr e distance par ProActive ne se r f re qu aux fichiers indiqu s dans le descripteur XML sans tenir compte du classpath de la machine h te 3 7 Exemple de d ploiement d objets ProActive Nous allons voir dans un exemple comment utiliser le descripteur de d ploiement pour cr er des objets actifs distants et des groupes On cr e tout d abord la classe Salut permettant de cr er les futurs objets actifs cette classe poss de une m thode retournant la cha ne Salut de concat n e avec l adresse de la machine envoyant le message 1a classe Salut permettant la cr ation d objets actifs public class Salut constructeur vide pour cr er des objets actifs public Salut une m thode retournant un objet r ifiable public ContainerString saysalut return new ContainerString Salut de ProActive getBodyOnThis getNodeURL
117. oir section 5 4 Page 48 Grille de calculs S il n y a plus de PC de r serve et qu un Worker dispara t le syst me continue fonctionner mais avec un Worker en moins donc les temps de calculs augmentent Par contre si un SubServer est perdu et s il n y a plus de machines de r serve un nouveau SubServer est cr sur la machine h bergeant le Server et les temps de calculs ne changent pas Cependant plus des SubServers sont remplac s et plus le nombre de communications vers la machine h te du Server augmente Lorsqu un SubServer est install sur la machine du Server ce SubServer lance les services Jini avant de commencer tout calcul s ils ont t activ s au d marrage de PicsouGrid Mais si d autres SubServers sont install s sur la machine du Server alors on ne lance pas une nouvelle fois ces m mes services Jini sur cette machine car on alourdirait le syst me et on provoquerait des conflits Les autres SubServers utilisent simplement les services Jini d j existants et se partagent donc le m me JavaSpace En fait la machine h bergeant le Server de PicsouGrid est consid r e comme fiable et permet de d truire l ensemble du syst me tout moment voir section 5 4 Une machine tr s robuste doit tre utilis e comme serveur pour g rer une grille compos e de PC ordinaires Une architecture avec plusieurs Servers redondants se partageant les connexions des clients constituerait donc la future volution d
118. onna tre l tat de PicsouGrid nombre de n uds d ploy s nombre de machines de r serve nombre de Workers associ chaque SubServer panne de Worker ou de SubServer nombre de machines de r serve restantes suite une panne Un utilisateur peut aussi pr voir lors du d veloppement de ses calculs d envoyer d autres informations Par exemple l application utilisant PicsouGrid que nous avons d velopp e envoie l interface de la figure 5 2 des informations concernant l acc s la base de donn es et les temps de calculs Il est aussi possible de d truire tous les n uds de l architecture donc aussi les SubServers et les Workers bouton D truire les Workers Ensuite on peut nouveau d ployer PicsouGrid avec un nombre identique ou diff rent de SubServers et de Workers Pour permettre l architecture ProActive de se d ployer un utilisateur doit fournir un fichier XML de d ploiement Ce fichier XML est assez simple cr er le chapitre 3 analyse un exemple en d tail Gr ce ce fichier XML des n uds sont cr s sur toutes les machines du cluster ou de la grille que veut utiliser l utilisateur Ensuite les SubServers et les Workers sont cr s sur chacun des n uds en fonction du nombre indiqu sur l interface graphique de d ploiement de PicsouGrid Si le nombre total de SubServers et de Workers est inf rieur au nombre de n uds cr s les n uds ne contenant pas d objets sont gard s pour compens
119. ous si les machines de r serve sont en nombre suffisant La tol rance aux pannes de PicsouGrid tire partie d une distribution en petites t ches Les surco ts provoqu s par des pannes pendant le calcul d une option barri re sont plus faibles que ceux provoqu s pendant le calcul d une option sur panier Cette diff rence est due au temps d ex cution d une t che qui de 8 4 secondes pour l option sur panier contre 0 7 seconde pour l option barri re Si les t ches sont suffisamment petites les surco ts seront faibles Par exemple le remplacement d un seul SubServer demande moins de 4 secondes avec l option barri re mais il demande jusqu 12 secondes avec l option sur panier Cette diff rence de 8 secondes correspond au temps d ex cution d une t che pour l option sur panier Donc pour l option sur panier si l utilisateur veut am liorer l efficacit de la tol rance aux pannes il peut diminuer la taille de la t che Par exemple en utilisant une t che de 10 000 simulations au lieu de 100 000 le temps d ex cution de cette t che demandera alors 0 8 seconde et le pire surco t provoqu par une panne sera plus faible Le surco t est cependant plus important pour remplacer un SubServer que pour remplacer un Worker Cette situation est normale car le remplacement d un Subserver demande plus d tapes que le remplacement d un Worker notamment pour r cup rer les Workers associ s au Sub
120. oyer des images Linux voir section 6 2 3 L utilisateur est en attente jusqu ce que deux n uds soient libres pendant 2 heures puis il est connect directement sur un des n uds De plus OAR fournit un num ro d identification de la r servation permettant d identifier sa r servation sur les diff rentes interfaces de visualisation OAR dispose aussi d un mode de soumission passif Un script est sp cifi lors de la r servation et est ex cut sur le premier n ud allou Exemple oarsub r 2006 09 25 15 30 00 1 nodes 8 walltime 2 00 00 script sh Dans cet exemple l ex cution du script est programm e pour le 25 septembre 2006 15h30 Si on ne pr cise pas de date dans la commande le script s ex cute d s que les n uds sont libres Il incombe au script de d terminer les n uds obtenus gr ce des variables d environnement refl tant la r servation et de r partir le travail entre ceux ci Page 65 Grille de calculs a Grid5000 Nancy OAR nodes Microsoft Internet Explorer i lej x Fichier Edition Affichage Favoris Qutils 2 Ed Q Pr c dente tal gt Ta A x E A Se Favoris FE Adresse https helpdesk grid5000 fr oar Nancy monika cgi z Eok uens Google x Cl Rechercher g PageRank Qi 181 bloqu e s E Options E El Grid5000 Nancy OAR nodes Summary OAR node status Free Busy Total Nodes 5 41 46 CPUs 10
121. pWorkers chaque SubServer cr e son groupe de Workers boolean ok false for int i 0 i lt nbSubServers i if i nbSubServers 1 ok US groupSubServers get i createWorker nodes nbWork i nbSubServers nbWorkers nbSubServers else ok US groupSubServers get i createWorker nodes Page 75 Grille de calculs nbWork i nbSubServers nbWork i 1 nbSubServers if ok setMessage Erreur lors de la creation des Workers r cup ration des groupes de Workers et d objets Alive vectorGroupWorkers new Vector vectorGroupSubAlives new Vector lt Alive gt for int i 0 i lt nbSubServers i vectorGroupWorkers addElement US groupSubServers get i getGroupWorkers vectorGroupSubAlives addElement US groupSubServers get i getGroupALives i Chaque SubSever cr e son groupe de Workers et d objets Alive sur le m me n ud gr ce la m thode createWorker Nodel int int qui fournit le tableau de n uds le num ro du premier et du dernier n ud pour savoir quelle partie du tableau de n ud utiliser pour mettre ses Workers avec leur objet Alive Ensuite le Server r cup re les groupes de Workers et d objets Alive de chaque SubServer pour les stocker dans deux vecteurs Ainsi lorsqu un SubServer dispara t le groupe de Workers et le groupe d objets Alive de ce SubServer sont fournis au nouveau SubServer voir sectio
122. performances de PicsouGrid ont t r alis es sur un cluster et sur une grille multi sites Grid 5000 La taille des t ches attribu es aux Workers influence l efficacit et les surco ts de traitement des pannes mais la tol rance aux pannes de PicsouGrid se r v le toujours efficace malgr des pannes importantes Grids are used to efficiently distribute computations and to reduce the execution times or to increase the application size But present grids manage fault tolerance without worry about large overheads of execution times We have designed and implemented a hierarchical and fault tolerant software grid architecture limiting fault detection and recovering overheads Communications can be achieved thanks to message passing paradigm using ProActive or shared memory paradigm using JavaSpaces Our architecture PicsouGrid is also generic to allow all applications to benefit from its functionalities deployment on a set of machines distribution of computation tasks and fault tolerance PicsouGrid performances have been measured on a cluster and on a multi site grid Grid 5000 The distributed computation efficiency and the fault tolerance overhead of PicsouGrid are sensitive to the task granularity but this fault tolerance oriented architecture succeeds in recovering very strong failures Mots cl s calcul distribu tol rance aux pannes d ploiement sur grille quilibrage de charge dynamique mesures de performanc
123. ple les m thodes Factory que l utilisateur sera oblig d implanter dans ses classes filles Les classes de PicsouGrid Server SubServer sont donc abstraites et generics On obtient un sch ma classique d une architecture objet avec une partie syst me cach e l utilisateur et une partie user voir figure 5 8 Server Sub Server Worker Bactory Bactory A A UserServer UserSubServer UserWorker Bactory Bactory Figure 5 8 Diagramme de classe classes et m thodes abstraites en italiques Page 52 Grille de calculs Dans la classe Server la m thode factory est utilis e de cette fa on SubServer subserver factory Dans la classe UserServer la m thode factory est d finie de la mani re suivante public UserSubServer factory UserSubServer subserver null try subserver UserSubServer ProActive newActive UserSubServer class getName new Object I catch Exception e error e return subserver De la m me mani re la m thode factory est utilis e par les classes SubServer et UserSubServer Limitation et passage aux generics Dans le sch ma pr c dent si l utilisateur se trompe l implantation et cr e par exemple un User WorkerBis h ritant aussi de Worker au lieu d un UserWorker dans la factory du UserSubServe
124. private static policy usr users staginfo bezzine JavaSpaces Config jsk all policy private static host ConfigUtil getHostName private static port 8088 private static jskdl http host port jsk dl jar serveur http private static httpd_service new NonActivatableServiceDescriptor policy usr java Jini2 1 l1ib classserver jar com sun jini tool ClassServer new String port port dir usr java Jini2 _1 1ib dl verbose service de look up private static reggie service new NonActivatableServiceDescriptor http host port reggie d1l jar jskdl policy usr java Jini2 1 l1ib reggie jar com sun jini reggie TransientRegistrarImpl new String usr users staginfo bezzine JavaSpaces Config reggie config JavaSpace private static outrigger service new NonActivatableServiceDescriptor http host port outrigger dl jar jskdl policy usr java Jini2 1 lib outrigger jar com sun jini outrigger TransientOutriggerImpl new String usr users staginfo bezzine JavaSpaces Config outrigger config static serviceDescriptors httpd_ service new ServiceDescriptor reggie service outrigger service Figure 4 3 Fichier de configuration des services Jini en mode transient et non activables Page 30 Grille de calculs Comme annonc la sec
125. ption e System err println Erreur e getMessage e printStackTrace return transMng Comme pour le JavaSpace on utilise le Look up pour obtenir une r f rence du Transaction Manager il faut seulement changer le patron ServiceTemplate de recherche en pr cisant le type d objet voulu TransactionManager class et le nom de l objet new Name transName Page 36 Grille de calculs Nous pouvons maintenant prendre un objet EmployeeEntry contenant le nom John mis par un autre programme changer son contenu et le remettre dans le JavaSpace pendant une m me transaction recherche du JavaSpace et du Transaction Manager JavaSpace space getSpace sh00 metz supelec fr TransactionManager transMng findTransaction sh00 metz supelec fr cr ation d une transaction dont la dur e ne peut d passer 1 second Transaction Created trFac TransactionFactory create transMng 1000 Transaction transaction trFac transaction patron cr pour prendre un objet EmployeeEntry contenant le nom John EmployeeEntry template new EmployeeEntry template name John EmployeeEntry employeeJohn EmployeeEntry space take template transaction Long MAX VALUE ex cution d une m thode mettant jour la fiche de l employ John EmployeeEntry employeeJohnUpgrade upgradeJob employeeJohn criture de l objet dans le JavaSpace pour une dur e illimit space write emp
126. que Server La classe g n rique Server est charg e de d ployer l ensemble de l architecture sur les machines du cluster ou de la grille de l utilisateur et de g rer la tol rance aux pannes voir chapitre 5 7 3 1 1 La m thode startsServer La m thode startServer est normalement ex cut e depuis la m thode main pour cr er l objet actif Server et d marrer l interface graphique public void startServer cr ation de l objet actif server Server server factoryServer try enregistrement de l objet actif server localement ProActive register server localhost serveur rendre des m thodes prioritaires ProActive setilmmediateService server reduceNbWorker ProActive setImmediateService server setNewGroupWorkers ProActive setImmediateService server setNewGroupAlives ProActive setImmediateService server setMessage ProActive setImmediateService server setServerPartialResult catch Exception e System out println Erreur lors de l enregistrement du Server error e System exit 1 cr ation de l interface du server server startInterface e La m thode factoryServer est une m thode abstraite que la classe fille UserServer doit d finir pour cr er un objet actif UserServer voir section 5 7 2 e La m thode register de ProActive permet l objet actif server de s enregister sur la machine locale et ainsi les autr
127. r f rence au r seau d lectricit public power grid 2 La d finition des grilles informatiques donn e par le minist re fran ais de la recherche est Globalisation des Ressources Informatiques et des Donn es GRID L objectif est de pouvoir mutualiser des ressources souvent r parties g ographiquement sur plusieurs sites ainsi un utilisateur dispose de la puissance de calcul des donn es et de l espace de stockage dont il a besoin pour lancer des applications sans se pr occuper de savoir quelles machines sont utilis es Comme pour la distribution d lectricit le client ne per oit pas l architecture sous jacente de la grille le middleware masque le syst me r el On distingue souvent plusieurs types de grilles e Les grilles d information permettent l acc s de tr s grandes bases d informations r parties g ographiquement et des capacit s de traitement adapt es Les quantit s de donn es stock es ou g n r es peuvent atteindre plusieurs petaoctets ou plus comme les r sultats du collisionneur du CERN n cessitant des capacit s de stockage inaccessibles pour un organisme seul Ces grandes bases de donn es sont issues de nombreuses exp riences scientifiques physique des particules biologie observation spatiale etc ou contiennent des donn es commerciales conomiques techniques ou textuelles Ces grilles d information demandent une bonne gestion des probl mes de migration et de r plic
128. r rien ne le d tectera la compilation Par exemple il peut cr er un Worker calculant les prix d options am ricaines au lieu d options europ ennes De plus l utilisateur est limit dans ses possibilit s de d veloppement Par exemple un objet nomm subservers repr sentant le groupe de SubServers est d clar de type SubServer dans la classe Server Mais en fait il est cr dans la classe UserServer gr ce une m thode factory comme un objet de type UserSubServer Donc dans la classe Server il est transtyp et l utilisateur ne peut appeler pour cet objet que les m thodes de la classe SubServer Si l objet subserver tait d clar de type UserSubServer dans la classe Server l utilisateur pourrait cr er des m thodes autres que celles impos es m thodes abstraites dans la classe UserSubServer et appeler ces m thodes pour cet objet subservers L exp rience a montr que pour r aliser un quilibrage de charge dynamique efficace l utilisation de m thodes non impos es appel es sur le groupe de SubServers est tr s pratique Nous avons donc souhait d velopper une architecture r alisant plus de v rification la compilation et accordant plus de libert de d veloppement aux utilisateurs Nous avons aussi souhait profiter de ce projet de recherche pour exp rimenter des architectures plus originales et priori plus int ressantes Nous avons un peu sp cialis les classes de PicsouGrid pour l
129. r seau RENATER A4 septembre 2005 http www renater fr St phane Vialle Parall lisme et Grid Pr misses 2006 http www metz supelec fr vialle course IIC PG index htm TeraGrid Extensible Terascale Facility 2006 http www teragrid org OSG Open Science Grid 2006 http www opensciencegrid org NAREGI National Research Grid Initiative 2006 http www naregi org index_e html UniGrids Uniform Interface to Grid Services 2006 http www unigrids org Akogrimo Acces to Knowledge through the Grid in the mobile world 2006 http www mobilegrids org HPCAU Highly predictable cluster for Internet Grids 2006 http www hpcdu org SIMDAT Data Grids for Process and Product Development using Numerical Simulation and Knowledge Discovery 2006 http www scai fraunhofer de simdat html DataMiningGrid Data Mining Tools and services for Grid Computing Environments 2006 http www datamininggrid org EGEE The Enabling Grids for E sciencE http public eu egee org DEISA Distributed European Infrastructure for Supercomputing Applications 2006 http www deisa org Grid 5000 plateforme de recherche sur les grilles r partie sur le territoire fran ais 2006 https www grid5000 fr mediawiki index php GridS000 Home Jean Luc Rognon La grille tente de trouver sa place dans l entreprise f vrier 2004 http www afnet fr portail news 04 usage 494 user F Baude L Baduel D Caromel A Contes F Hue
130. r voir la valeur de l actif S T la date T Le mod le de Black Scholes 27 est un mod le stochastique pour l volution temporel d un actif Si on discr tise en temps ce mod le on simule une trajectoire du prix de l actif c est dire la courbe du prix depuis la signature du contrat jusqu l ch ance T avec cette formule S k 1 At S kAtexp r o 2 At o VAt G k 2 e repr sente la volatilit d un actif La volatilit de la valeur d un actif mesure l incertitude quant aux variations futures du cours de cet actif Plus la volatilit est grande plus la probabilit que le cours de l actif augmente consid rablement ou subisse de fortes baisses est importante e La discr tisation se fait avec un pas de temps constant At qui est gale T N Par exemple si T est gale 1 an si on veut un pas de temps de 1 mois N est gale 12 et donc At 1 12 1 mois Ainsi avec cette formule on estime le prix de l actif 1 mois apr s la date de signature du contrat S 1 1 12 partir du cours de l actif sur le march la date du Page 62 Grille de calculs jour S 0 Ensuite on calcule le prix 2 mois de la signature du contrat S 2 1 12 partir du prix estim 1 mois On continue de cette fa on jusqu obtenir le prix estim de l actif la date T 12 mois plus tard e G k appartient une famille de variables al atoires ind pendantes gaussiennes centr es et r
131. r au d part subservers setTask 3 nbJob envoie du nombre de t ches au dernier SubServer si son groupe est plus grand que les autres UserSubServer groupSubServers get nbSubServers 1 setTask 3 lastSubNbJob envoie des donn es initiales aux SubServers subservers initiate subinit result new UserResult 0 0 0 0 0 calculs lanc s sur les SubServers groupResultsSubServers ProActiveGroup getGroup subservers calculate launch true 1e r sultat arriv est additionn et le SubServer est relanc while result getNumberSimulations lt nbTotalSimulations int index groupResultsSubServers waitOneAndGet Index result add UserResult groupResultsSubServers get index ProxyForGroup groupResultsSubServers set index Page 87 Grille de calculs UserSubServer groupSubServers get index calculate launch false 1es SubServers sont stopp s try subservers stopSub true catch Exception e return result Un vecteur est cr pour stocker les r sultats partiels des SubServers checkpointing Un nombre de t ches initiales est demand es aux SubServers gr ce la m thode setTask ensuite d autres t ches sont fournies pendant l envoie des r sultats partiels pour r aliser un quilibrage de charge dynamique voir section 5 5 2 Si le dernier SubServer poss de un groupe de Workers plus important il re oit plus de t ches La
132. r du processeur ne redonne pas la main au thread d une fa on tr s pr cise donc pas syst matiquement au bout de 400 millisecondes il faut alors pr voir une marge entre la dur e de mise en sommeil 400 millisecondes dans cet exemple et le lease 1000 millisecondes dans cet exemple Si on mettait en sommeil le thread pendant 800 millisecondes au lieu de 400 le scheduler du processeur pourrait redonner la main au thread 1050 millisecondes apr s la mise en sommeil la transaction serait alors terminer et l ex cution de la m thode lease renew 1000 provoquerait une erreur Page 38 Grille de calculs 4 5 Bilan L installation de Jini est tr s rapide L utilisation des op rations le plus courantes des JavaSpaces est simple Par contre le lancement des services Jini avec leurs diff rents modes l acc s ces services depuis un programme et les transactions sont complexes et on trouve tr s peu d information claire sur ces sujets En fait on se r f re essentiellement la documentation Sun qui n est pas tr s explicite Ainsi pour r ellement comprendre comment lancer les diff rents services Jini en mode transient ou persistent activables ou non pour utiliser les transactions ou pour r cup rer les r f rences d un service en se connectant au Look up il nous a fallu environ un mois d exp rimentation pour bien ma triser toutes ces notions Une fois ma tris s les services Jini JavaSpaces sont tr s pratiqu
133. rage de charge dynamique et ainsi s adapter des machines h t rog nes et pour limiter les surco ts provoqu s par les pannes et leur r paration PicsouGrid conserve de bonnes performances m me en utilisant 200 machines condition de pr voir un nombre suffisant de SubServers car avec un seul SubServer l efficacit s effondre rapidement Une architecture hi rarchique est donc indispensable pour g rer un grand nombre de machines Les performances sur plusieurs sites restent cependant moins importantes que sur un seul site cause des temps de communication sur des r seaux longue distance L utilisation simultan e des m canismes de tol rance aux pannes du middleware sous jacent renforce encore le syst me mais peut entra ner une l g re perte d efficacit C est le cas des transactions que l on peut associer aux op rations sur les JavaSpaces La tol rance aux pannes de PicsouGrid s av re efficace car le syst me continue fonctionner malgr la destruction de tous les SubServers ou d un groupe complet de Workers pendant un m me calcul quelques machines de r serve tant utilis es pour remplacer les SubServers ou les Workers disparus Le surco t est bien s r plus important pour remplacer un SubServer que pour remplacer un Worker surtout si le SubServer doit relancer les services de la m moire partag e virtuelle des JavaSpaces Perspectives Dans une perspective court terme il est souhaitable d in
134. reUpOut pionBarriereUpin pionBarriereDownOut pionBarriereDownin IserTask serTask pionBarriereDoublein prionBarriereDoubleOut Leaserenew case Leaso easerenew un prionBasket alculDecompositionCholesky ultiplyMatriVector cteurMBrownienne Userinit teger Integer arrieret Double arriere Double isteVolatilite Doublel isteCorrelation Doublel inSpace Boolean Iserinit Jserinit Iserinit Iserinit Iserinit Iserinit Iserinit Iserinit jetActif jetStrike jetTaux etSigma etMaturite jetBarriere1 jetBarriere2 etListeActif jetListeVolatilite jetListeCorrelation jetNbActits jetNbTimel jetNoMC etTypeCalcul jetRunSpace etStateSpace reateListe TA 0 1 041 Result EnumberSimulations Integer BoctNumberSimulations UserResult lotalPayoffPut Double lotalPayofiCall Double talPayoffPutCarre Double lotalPayoffCallCarre Double UserResult UserResult etTotalPayofiPut etTotalPayofiCall etTotalPayoflPutCarre etTotalPayoffCallCarre etMeanPayotfPut etMeanPayofiCall add Figure 7 2 Diagramme de classe de PicsouGrid et d une application b tie au dessus Page 70 Grille de calculs 7 3 Analyse des principales classes de PicsouGrid 7 3 1 Classe g n ri
135. regroup 15 pays d Europe 21 organisations et 200 personnes pour cr er une grille d exploitation b tie sur Globus IT 2001 2003 Des applications dans les domaines de la physique des particules de la biologie et de l observation de la terre ont t exp riment es Ce projet a montr l utilit des grilles de donn es et leur manque de robustesse un fort pourcentage de n uds taient souvent inaccessibles observable sur la cartographie du projet sur un site Web 13 Composants actuels d une grille 1 3 1 Architecture g n rale Pour construire une grille efficace il est important d y implanter un middleware robuste et un environnement de d veloppement contenant de nombreuses fonctionnalit s Page 8 Grille de calculs Organisations Virtuelles pr Applications distribu es de Grille Environnement de d veloppement MPI G EL A Cr ProActive EAACETE GridRPC ProActive middi MEME DE middi JavaRMI Corba JVM VPN Globus Figure 1 4 Architecture de grille Il existe deux types de middleware voir Figure 1 4 e middleware de grille g n rique et ambitieux ex Globus e middleware g n rique traditionnel avec un compl ment sp cifique ex Java RMI ProActive Java Jini JavaSpaces Le middleware de grille doit r soudre de nombreux probl mes e authentification unique et politique de s curit tol rance aux pannes quilibrage de charge dynamique d couverte et
136. rid On peut ensuite cr er un objet s rialisable destin tre plac dans un JavaSpace exemple d objet destin un JavaSpace public class MessageEntry implements Entry public String content public MessageEntry public MessageEntry String content this content content public String toString return MessageContent content Page 31 Grille de calculs On peut ensuite crire lire et reprendre des objets d finis pr c demment recherche du JavaSpace avec le service Look up se trouvant sur sh00 JavaSpace space getSpace sh00 metz supelec fr cr ation d un objet s rialisable MessageEntry msg new MessageEntry msg content Hello criture de l objet dans le JavaSpace pour une dur e illimit space write msg null Lease FOREVER cr ation d un patron pour prendre un objet de type MessageEntry MessageEntry template new MessageEntry lectur t reprise de l objet MessageEntry output MessageEntry space read template null Long MAX_VALUE MessageEntry message MessageEntry space take template null Long MAX_VALUE On peut aussi crire un objet pour un temps limit en indiquant un nombre de millisecondes la place de Lease FOREVER Pour les m thodes read et take le champs null indique qu elles ne sont pas en mode transaction Le template est g n ral donc on r cup rera tous les objets
137. rouvant sh02 grid metz supelec fr 13 Workers crees pour un SubServer se trouvant sh03 grid metz supelec fr Creation du groupe de Workers terminee avec 26 Workers crees et 2 SubServers Acces a la base de donnees et recuperation de valeurs pour le tableau option panier du client 80000000 simulations realisees avec 26 Workers et 2 SubSerwers en 22360 ms Un Worker a disparu I reste 1 machines de reserve pour compenser les pannes Un Worker est cree sur la machine Sh05 grid metz supelec fr 80000000 simulations realisees avec 26 Workers et 2 SubServwers en 23915 ms Un SubServer a disparu I reste machines de reserve pour compenser les pannes Un SubServer est cree sur la machine sh28 grid metz supelec fr 80000000 simulations realisees avec 26 Workers et 2 SubServwers en 27895 ms Un SubServer a disparu I ne reste plus de machine de reserve pour compenser les pannes Un SubServer est cree sur la machine Server 80000000 simulations realisees avec 26 Workers et 2 SubServwers en 30550 ms Figure 5 2 Interface graphique du Server Page 42 Grille de calculs Nous avons d velopp une interface graphique voir figure 5 2 pour le Server de PicsouGrid qui permet de choisir le nombre de SubServers et de Workers d ployer bouton D ployer les Workers Un encadr Messages contient les informations donn es par la partie syst me de l architecture L interface affiche des informations nous permettant de c
138. rs l adresse de Look up cette adresse est aussi le nom du JavaSpace pour que les Workers puissent obtenir une r f rence sur le JavaSpace se trouvant sur la machine du SubServer 7 3 2 3 La m thode createNewWorker La m thode startControl permet de lancer un thread g rant la tol rance aux pannes Ce thread ex cute la m thode run qui est identique celle ex cut e par le Server voir section 7 3 1 Lorsqv une panne est d tect e la m thode createNewWorker est ex cut e cr ation d un nouveau Worker en cas de panne classe SubServer public void createNewWorker int i int num if compte 0 demande poolnode d un num ro de n ud de r serve num poolnode getNode else num 1l s il reste des n uds de r serve if num gt 0 cr ation d un nouveau Worker et de son objet Alive try UW newWorker factoryWorker num Page 82 Grille de calculs Alive newLive Alive ProActive newActive Alive class getName new Object new ContainerInt i nodes num ProActive setImmediateService newWorker stopWork ProxyForGroup groupWorkers set i newWorker ProxyForGroup groupAlives set i newLive if runSpace newWorker findJavaSpace address if calculateLaunch newWorker init getDatalnitiate ProxyForGroup groupResultsWorkers set i UW groupWorkers get i simulate envoie des groupes modi
139. rver setMessage Acces a la base de donnees et recuperation de valeurs pour le tableau option panier du client return new UserInit nbActifs listeActif listeVolatilite listeCorrelation La m thode executeQuery permet d ex cuter une requ te SQL Les nombres peuvent tre ensuite r cup r s par colonne gr ce la m thode getDouble Nom de colonne Page 92 Grille de calculs VIII Mesures de performances 8 1 Performances de PicsouGrid sur un cluster 8 1 1 Performances sur un petit cluster en mode ProActive Nous avons mesur les performances d applications utilisant PicsouGrid sur le cluster de Sup lec compos de machines identiques ayant les caract ristiques suivantes processeur Intel Pentium 4 3 Ghz 1 Mo de m moire cache m moire vive 1 Go Option simple avec 10 millions de simulations OQ eu O D O T che de 1000 simulations sa T che de 10000 simulations __ T che de 20000 simulations __x T che de 50000 simulations ND i x T che de 100000 simulations _ e T che de 200000 simulations Temps de calcul en secondes ee QE 0 5 10 15 20 25 30 Nombre de workers Figure 8 1 Temps de calcul en fonction de la taille des t ches Option simple avec 10 millions de simulations e T che de 1000 simulations T che de 10000 simulation
140. s T che de 20000 simulations Speed up x T che de 50000 simulations x T che de 100000 simulations e T che de 200000 simulations S P P 0 5 10 15 20 25 30 Nombre de workers Figure 8 2 Speed up en fonction de la taille des t ches Page 93 Grille de calculs Dans un premier temps nous avons mesur l volution des performances du syst me en mode ProActive pour le calcul d une option europ enne simple lorsque la taille des t ches augmentent voir figure 8 1 et 8 2 Nous avons utilis 2 SubServers pour g rer les Workers On constate logiquement que plus on augmente la taille des t ches et plus le Speed up progresse Si les t ches sont trop petites le syst me passe un temps important dans les communications envoie des t ches et r ception des r sultats Plus on augmente la taille des t ches et plus le syst me est efficace mais on r duit alors la possibilit d un quilibrage de charge dynamique voir section 5 5 et on augmente le surco t de temps de calcul pour la r paration des pannes voir section 8 3 8 1 2 Performances sur un petit cluster en mode JavaSpace Nous avons mesur sur le cluster de Sup lec le Speed up et l efficacit de l application calculant une option sur panier compos e de 4 actifs avec une architecture compos e d un seul SubServer voir figure 8 3 et 8 4 Un seul SubServer s est av r suffisant pour g rer un no
141. s 0 2s 0 6s 4 Workers 40 4s 41 5s 0 3s 1 4s 6 Workers 41 35 41 65 1 25 1 5s 1 SubServer 42 8s 43 4s 2 7s 3 3s 2 SubServers 46 15 47 95 6s 7 85 3 SubServers 50 4s 51 65 10 3s 11 55 Tableau 8 3 Surco ts provoqu s par des pannes pendant le calcul d une option barri re Page 99 Grille de calculs Pannes simultan es Temps minimum Temps maximum Surco ts sans panne 50 25 1 Worker 50 4s 50 9s 0 2s 0 7s 2 Workers 50 8s 52 4s 0 6s 2 2s 4 Workers 50 9s 53 3s 0 7s 3 1s 6 Workers 51s 53 8s 0 8s 3 6 1 SubServer 50 65 58 25 0 4s 8s 2 SubServers 58 2s 61 7s 8s 11 5s 3 SubServers 62 45 70 95 12 25 20 75 Tableau 8 4 Surco ts provoqu s par des pannes pendant le calcul d une option sur panier L analyse de ces r sultats est faite la section suivante 8 3 3 Bilan des performances actuelles Deux techniques interviennent pour limiter les surco ts provoqu s par des pannes les m canismes de tol rance aux pannes de PicsouGrid qui utilisent les machines de r serve et l quilibrage de charge dynamique qui permet de fournir plus de t ches aux machines en bon tat En analysant les tableaux des sections 8 3 1 et 8 3 2 nous constatons que PicsouGrid supporte les pannes importantes car il continue fonctionner malgr la disparition du groupe complet de SubServers ou de la totalit des membres d un groupe de Workers Il les remplace t
142. s les middlewares car ils sont adapt s l application ils peuvent ne sauvegarder que le strict n cessaire et ne relancer qu un minimum de calculs Cependant ils ne peuvent pas d tecter ni r parer des pannes affectant le middleware Nous utilisons donc certains m canismes existant dans le middleware Jini JavaSpaces pour am liorer encore la tol rance aux pannes Nous n avons pas encore utilis les m canismes de ProActive car ils taient eux m mes en fin de d veloppement pendant ce stage L objectif est de faire collaborer les m canismes applicatifs de tol rance aux pannes avec les m canismes des middlewares ProActive et Jini JavaSpaces pour rendre l architecture plus efficace dans la d tection et la r cup ration sur panne Page 46 Grille de calculs Application PicsouGrid Middleware sous jacent ProActive et JavaSpaces Ressources distribu es Figure 5 4 Architecture multi niveaux On utilise des PC de r serve s il en existe pour maintenir les temps de calcul Bien sur on pourrait int grer ces PC de r serve dans l architecture d s le d but du fonctionnement les temps de calcul seraient inf rieurs aux temps d sir s mais augmenteraient chaque panne Cette strat gie ne correspondrait pas aux attentes des utilisateurs qui souhaitent une grande fiabilit et une grande constance dans les outils de calculs voir section 5 2 Nous avons donc choisi de conserver des PC de r serve car en
143. s on les ajoute au groupe groupStdSalut add gr ce la repr sentation standard du groupe groupStdSalut Apr s avoir lanc la m thode saysalut sur le groupe on obtient un groupe de messages r sultats on r cup re chaque r sultat du groupe de r sultat avec la m thode get ensuite avec la m thode getString de ContainerString on peut obtenir le vrai message de chaque message r sultat donc de chaque n ud dans cet exemple Enfin la m thode killall false associ au descripteur ProActive pad permet de d truire tous les n uds et machine virtuelles cr s extrait de code d une application d ployant et utilisant des objets actifs Salut try d ploiement des noeuds d crits dans le fichier Salut xml ProActiveDescriptor pad ProActive getProactiveDescriptor usr users staginfo bezzine ProActive descriptors Salut xml pad activateMappings VirtualNode virtuelNoeudSalut pad getVirtualNode NoeudSalut creation d un groupe d objets actifs Salut sur les noeuds associ s au noeud virtuel VirtuelNoeudSalut Salut groupSalut Salut ProActiveGroup newGroup Salut class getName new Object virtuelNoeudSalut cr ation d un objet classique sur la machine local Salut salutl new Salut cr ation d un objet actif sur la machine local Salut salut2 Salut ProActive newActive Salut class getName new Object Page 24 Grille de
144. s r seaux de communication haut d bit ont t install s Ainsi le r seau europ en GEANT 3 fournit un d bit de 10 Gbit s aux organismes de recherche voir figure 1 1 En France le r seau RENATER R seau National de t l communications pour la Technologie l Enseignement et la Recherche 4 offre un d bit allant de 2 5 Gbit s 10 Gbits s migration en cours aux chercheurs voir figure 1 2 Page 6 Grille de calculs 2 DR 5 e gt 5 6 a S kos 10 Gbit s 5 Gbit s 2 5 Gbit s 622 Mbit s 34155 Mbit s J G ANT is operated by DANTE on behalf of Europe s research and education networks Figure 1 1 Le r seau GEANT SFINX Global Internet eXchange acc s aux autres EC prestataires de service Internet en France Connexion l internet mondial GEANT2 wwwgeant2net Connexion vers les r seaux de la Recherche en Europe et les r seaux de la Recherche des pays m diterrann ens de la zone Asie Pacifique l Am rique du sud x Ai de l Am rique centrale CLARA de France Q ga pT 2 5 Gbit s N Fr renj Cal donie Taiti 9 ts Liaison projets Connexion sue Rue vers les DOM TOM D ou Figure 1 2 Le r seau RENATER Page 7 Grille de calculs 1 2 Evolution des grilles de calcul Le grid computing est pr sent comme la suite du meta computin
145. s services Jini n ont pas t d ploy s et nous n avons plus acc s aux 2 cases concernant l activation des JavaSpaces On peut nouveau y acc der lorsqu on lance la destruction de l architecture pour pouvoir ventuellement d ployer une nouvelle architecture 5 5 M canismes d quilibrage de charge 5 5 1 Strat gie au niveau applicatif L quilibrage de charge n est pas r alis par l architecture PicsouGrid il reste la charge du programmeur de l application car il est tr s d pendant du type d algorithme distribu et implant pour effectuer les calculs Toutefois nous avons tudi plusieurs strat gies d quilibrage de charge que nous d crivons ci apr s Ces strat gies traitent actuellement des probl mes de type embarrassingly parallel car les applications financi res effectuent souvent des calculs stochastiques qui peuvent tre facilement parall lis s en t ches ind pendantes et identiques voir Page 43 Grille de calculs section 6 1 Les calculs consistent donc planifier un grand nombre de simulations de Monte Carlo puis distribuer ces simulations sur les Workers L application sera adapt e une architecture homog ne ou h t rog ne machines de puissance identique ou diff rente en fonction des m canismes d quilibrage de charge d velopp s par l utilisateur dans ses calculs L utilisateur d veloppant la partie applicative doit mettre en place un quilibrage de c
146. section 4 3 on change simplement le nom du JavaSpace String spaceName lookupAddress car grid n est plus le nom du JavaSpace mais son nom est l adresse de la machine o se trouve le Look up exemple d objet destin un JavaSpace public class EmployeeEntry implements Entry public String name public String job public EmployeeEntry public EmployeeEntry String name this name name Pour utiliser les transactions il faut obtenir une r f rence du Transaction Manager qui a aussi pour nom l adresse de la machine contenant le Look up public TransactionManager findTransaction String lookupAddress String transName lookupAddress SecurityManager pour autoriser le t l chargement de cod if System getSecurityManager null System setSecurityManager new RMISecurityManager construction d un patron pour rechercher le Transaction Manager Class types TransactionManager class Entry l attributes new Name transName ServiceTemplate template new ServiceTemplate null types attributes TransactionManager transMng null try recherche du service Look up LookupLocator lookup new LookupLocator jini lookupAddress ServiceRegistrar registrar lookup getRegistrar recherche du Transaction Manager dont le nom est l adresse de la machine transMng TransactionManager registrar lookup template catch Exce
147. ser ProActive apr s l avoir install il faut inclure tous les fichiers jar n cessaires son fonctionnement dans la variable d environnement Classpath Lorsqu on lance une application avec la machine virtuelle Java il faut indiquer un fichier de politique de s curit donnant les droits d acc s aux ressources du syst me On pr cise aussi un fichier log4j qui configure la journalisation des erreurs de l application sinon un fichier par d faut est utilis Voici un exemple de ligne de commande pour lancer un programme Hello World java Djava security policy HOME ProActive scripts proactive java policy Dlog4j configuration file HOME ProActive scripts proactive log4j HelloWorld 3 3 Concept d objet Actif et d objet Futur ProActive repose sur le concept d objet actif Un objet actif est en fait un objet Java qui poss de ses propres threads et sa propre file d ex cution accessible distance Tout autre objet passif normal ou actif peut donc faire appel aux m thodes de cet objet comme s il se trouvait sur la m me machine que lui 18 Lorsqu un programme fait un appel de m thode sur un objet actif renvoyant un objet en retour l application n est pas bloqu e jusqu l arriv e de la r ponse car un objet futur est envoy tout de suite et sera remplac par l objet attendu lorsqu il sera disponible Si le programme tente d acc der la valeur de l objet futur avant que sa vrai
148. sid rant une classe A dont l instance peut tre d finie de la mani re suivante A a new A 26 essai Une premi re m thode pour cr er une instance active de la classe A est de cr er directement un objet actif en utilisant la m thode newActive de la classe ProActive On passe comme argument le nom de la classe et un tableau d objets contenant les arguments du constructeur Object params new Object new Integer 26 essai Try A A ProActive newActive A class getName params catch Exception e e printStackTrace Si un des arguments du constructeur est un type primitif Java int boolean il faut mettre la place un objet de la classe enveloppe correspondante Integer dans l exemple ci dessus Comme pour les objets retourn s par les appels de m thodes asynchrones les classes des objets actifs doivent tre r ifiables voir section 3 3 Rappel e elles ne sont pas de type primitif int boolean float e elles ne sont pas des classes de type final et ne poss dent aucune m thode de type final e elles poss dent une m thode constructeur vide et sans argument public A Page 18 Grille de calculs En fait lorsqu un objet actif est cr une sous classe de A appel Srub A est aussi cr qui red finit toutes les m thodes de A Ceci serait impossible avec une classe de type final ou poss dant des m thodes de type final 3
149. ssseessesesseessesese 85 7 4 1 Classe UserServet scoireann a da a i aiia ia iaia 85 7 4 2 Cl sse US S UD SSP ne nn nt Ea mate Aaaa 88 7 4 3 Classe TE 0 di SR EE PE RE I TE 90 7 4 4 CHASSE UsetData men dE on 92 VIII Mesures de performances 93 8 1 Performances de PicsouGrid sur un cluster sssssnsseseeeseossessssseesseserssresseseess 93 Page 3 Grille de calculs 8 1 1 Performances sur un petit cluster en mode ProActive 93 8 1 2 Performances sur un petit cluster en mode JavaSpace sss seesesseseesseseee 94 8 1 3 Performances sur un gros cluster en mode ProActive 95 8 2 Performances de PicsouGrid sur une grille en mode ProActive ss 0010000s 97 8 3 PicsouGrid et la tol rance aux pannes inside none ane 98 8 3 1 Mesures de performance sur un petit cluster en mode ProActive 98 8 3 2 Mesures de performance sur un petit cluster en mode JavaSpace 99 8 3 3 Bilan des performances actuelles 15 100 8 4 Premiers r sultats avec une tol rance aux pannes renforc e 101 Conclusion et perspectives 103 BIDON de dd de Su ets 104 Page 4 Grille de calculs Introduction La technologie grid computing est de plus en plus adopt e par l industrie et notamment par l industrie financi re banques et assurances Les grilles permettent de distribuer efficacement certains types de calculs et de diminuer ainsi les temps de trai
150. t cr er seulement quelques objets actifs sur certains n uds Par exemple on peut alors cr er un objet actif sur un des n uds obtenus et appeler sa m thode saysalut m me s il est sur une machine distante VirtualNode NoeudSalut pad getVirtualNode NoeudSalut Node nodes NoeudSalut getNodes Salut salut Salut ProActive newActive Salut class getName new Object nodes 0 System out println salut saysalut getString Page 25 Grille de calculs 3 8 Bilan La documentation ProActive permet assez facilement de commencer installer et utiliser ProActive sur un exemple simple fourni mais elle n est malheureusement pas assez d taill e pour ma triser rapidement des op rations plus complexes comme les communications de groupes et le fichier de d ploiement Il faut passer beaucoup de temps exp rimenter soi m me sur de petits programmes pour vraiment bien comprendre le fonctionnement de ProActive Il nous a fallu environ un mois pour bien se former Une fois assimil ProActive est tr s pratique pour distribuer des calculs et d ployer des objets sur un grand nombre de machines mais comporte malheureusement des limites d utilisation avec d autres biblioth ques Java on nous demande d utiliser les threads avec pr caution pour viter des conflits avec ProActive les generics de Java 1 5 ne sont pas encore bien support s par ProActive voir section 5 7 3
151. t M Morel and R Quilici Programming Composing Deploying for the Grid In GRID COMPUTING Software Environments and Tools Jose C Cunha and Omer F Rana Eds Springer Verlag January 2006 Laurent Baduel Francoise Baude Denis Caromel Efficient Flexible and Typed Group Communications for Java In Joint ACM Java Grande ISCOPE 2002 Conference Seattle Washington November 2002 Qusay H Mamoud Getting Started With JavaSpaces Technology Beyond Conventional Distributed Programming Paradigms July 12 2005 http java sun com developer technicalArticles tools JavaSpaces index html Virginie Galtier Notice JavaSpace sur le cluster Sup lec 2006 S bastien Bezzine Calculs financiers intensifs sur clusters et grille d velopp s en ProActive sous Java stage DEST 2005 Page 104 23 24 25 26 27 28 29 30 Grille de calculs Lionel Roux J2SE 5 0 Tiger 17 08 2004 http www developpez com Gilad Bracha Generics in the Java Programming Language July 5 2004 http java sun com j2se 1 5 pdf generics tutorial pdf Gilad Bracha Sun Microsystems Martin Odersky University of South Australia David Stoutamire Sun Microsystems Philip Wadler Bell Labs Lucent Technologies GJ Extending the JavaTM programming language with type parameters August 1998 http homepages inf ed ac uk wadler ej Documents gj tutorial pdf Viet Dung Doan Samir Ouifi Le calcul distribu en finance La valorisation
152. t grer galement les m canismes de tol rance aux pannes de ProActive d s que ces m canismes auront t mis jour et seront plus accessibles et contr lables La tol rance aux pannes global de PicsouGrid en sera encore plus efficace Dans une perspective long terme l architecture PicsouGrid pourrait devenir l ossature d une v ritable grille de calculs financiers incorporant de nombreux services de calculs de risques Chaque SubServer et son groupe de Workers accueilleraient alors un service de calcul diff rent en utilisant ProActive ou les JavaSpaces selon les besoins de l algorithme parall le utilis Page 103 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Grille de calculs Bibliographie S Bezzine S Vialle V Galtier F Baude M Bossy V D Doan et L Henrio A Fault Tolerant and Multi Paradigm Grid Architecture for Time Constrained Problems Application to Option Pricing in Finance In 2 IEEE International Conference on e Science and Grid Computing Amsterdam d cembre 2006 St phane Vialle Parall lisme et Grid D finitions 2006 http www metz supelec fr vialle course IIC PG index htm GEANT The backbone topology of the G ANT network October 2004 http www dante net server show nav 150 RENATER R seau National de t l communications pour la Technologie l Enseignement et la Recherche carte du
153. t d velopper une classe h ritant de la classe Data pour acc der une base de donn e Cette classe Data fournit simplement une r f rence l objet actif Server pour utiliser ses m thodes par exemple pour envoyer un message Les classes Server SubServer et Worker sont abstraites en italique sur le diagramme et contiennent des m thodes abstraites aussi en italique Ces m thodes abstraites obligent l utilisateur les d finir dans ses classes filles Ces m thodes sont n cessaires au fonctionnement de la tol rance aux pannes voir section 5 6 4 Les classes de l utilisateur permettent d quilibrer la charge des processeurs d effectuer les calculs et d agr ger les r sultats Page 69 generics InterfaceGraphic Grille de calculs generics generics Server lt USS UW UR Ul gt lt lt bind gt gt Server lt UserSubServer UserWorker UserResult Userinit gt JPanel bPorSocket int bTimeFaultTolerance int bLostWorkers int bSubServers int bWorkers int nbinitialWorkers zint nbProcesseurs int bNode int umNode Work int eniceEnd boolean inSpace boolean joSpace boolean ubservers USS t torLiving Vector lt Living gt ctorGroupWorkers Vector ctorGroupSubAlves Vector lt Alive gt ad ProActiveDes criptor raphic Interlace Graphic anel3 JPanel nel4 JPanel anelS JPanel anel6 JPanel hoise But
154. t de son objet Alive sur le n ud du Server Living vectorLiving get i setBool false try US newSub factorySubServer Alive newAlive Alive ProActive newActive Alive class getName new Object I new Conta inerInt i launchNewSub newSub newAlive i setMessage Un SubServer est cree sur la machine Server catch Exception e setMessage Erreur lors de la creation de l objet Alive error e Page 77 Grille de calculs goSpace false L appel de la m thode getNode sur l objet actif poolnode permet d obtenir un num ro de n ud contenu dans le tableau de n uds nodes Si ce nombre est positif un SubServer et son objet actif Alive sont cr s sur le n ud Si ce nombre est n gatif un SubServer et son objet actif Alive sont cr s sur le n ud h bergeant le Server Le bool en goSpace permet d viter de lancer plusieurs fois les services Jini sur la machine h te du Server si plusieurs SubServers taient install s sur cette machine voir section 5 6 2 Nous allons maintenant analyser la m thode launchNewSub qui est utilis e par la m thode createNewSub lancement des calculs sur le nouveau SubServer classe Server public void launchNewSub US newSub Alive newALive int i try le nouveau SubServer est plac dans le groupe ProActive setImmediateService newSub stopSub ProxyForGroup groupSubServers set i newSub ProxyFor
155. tel i for int i 0 i lt nbActifs i out println Double toString listeCorrelation il catch Exception e Page 86 Grille de calculs setMessage Erreur lors de l envoie des reponses a la socket client error e fermeture de la Socket et des flux d entr e et de sortie try in close j out close service close catch Exception e setMessage Erreur lors de la fermeture de la socket service error e Un flux d entr e et un flux de sortie sont cr s pour communiquer avec le client Le Server lit les informations envoy es par le client gr ce la m thode readLine du flux d entr e Les calculs sont effectu s gr ce la m thode simulate La m thode statique getBasket de la classe UserData permet d obtenir les informations demand es dans la base de donn es La m thode printin du flux de sortie permet d envoyer les r sultats au client 7 4 1 2 La m thode simulate La m thode simulate permet d effectuer les calculs demand s par le client traitement des calculs classe UserServer public UserResult simulate UserResult result cr ation du vecteur stockant les r sultats partiels vectorPartialResult new Vector lt UserResult gt for int i 0 i lt nbSubServers i result new UserResult 0 0 0 O0 0 vectorPartialResult addElement result envoie du nombre de t ches effectue
156. tement ou d augmenter la quantit de donn es trait es Cette technologie int resse particuli rement les institutions financi res qui r alisent en permanence d importants calculs de risques L objectif est de pr voir l volution de produits financiers pour d cider de conclure une transaction ou d y renoncer Mais ces produits et leurs mod les math matiques sont de plus en plus complexes De plus le calcul de risque global d une banque sur l ensemble de ses actifs ou de gros sous ensembles doit tre plus pr cis pour limiter les pertes Toutes ces contraintes m nent une quantit toujours plus importante de calculs effectuer en un minimum de temps Les grilles sont une solution potentielle aux besoins de calculs de risques mais elles souffrent toutes d un probl me inh rent aux architectures de grandes tailles la fr quence des d faillances et des disparitions momentan es des ressources Les middlewares de grilles professionnels actuels g rent la tol rance aux pannes sans s inqui ter des retards engendr s Pour pallier ces faiblesses nous d veloppons une architecture logicielle sur grille qui soit tol rante aux pannes tout en minimisant les surco ts de r cup ration sur panne sans toutefois garantir une qualit de service QoS et des traitements temps r el Elle s appuie sur des m canismes int gr s au niveau applicatif donc adapt s aux applications pour minimiser les temps de d tection
157. test la tol rance aux pannes int gr e dans le middleware aucune JavaSpace les transactions s curisent les manipulations des JavaSpaces travers le r seau et la persistance du JavaSpace le prot ge contre une d faillance de son service Comme l explique la section 5 6 3 si nous utilisons des services activables et persistants et que le processus h bergeant ces services tombent en panne le rmid les relance et les services r cup rent leurs donn es sur le disque De plus les transactions sont utilis es pour viter la perte d une t che qui ne serait jamais ex cut e cause de la panne d un Worker ce qui entra nerait le blocage du SubServer voir section 5 6 3 Nous avons utilis une architecture compos e du Server de 3 SubServers et de 18 Workers Chaque SubServer lance tous les services n cessaires au fonctionnement d un JavaSpace Pendant un m me calcul nous avons d truit le processus h bergeant les services activables et persistants d un SubServer puis de 2 SubServers et enfin des 3 SubServers pour tester les m canismes de tol rance aux pannes Nous avons d abord effectu ces exp riences sur un calcul d option sur panier avec 10 millions de simulations et des t ches de 100 000 simulations le temps de calcul de chaque t che tait de 8 4 secondes En cas de panne de la JVM du JavaSpace nous n avons remarqu aucun surco t en utilisant l activation et la persistance du JavaSpace pour assurer son re
158. teur dans la m thode getPortSocket La m thode executeSocket d velopp e dans la classe fille permet de traiter l appel entrant 7 3 1 8 La m thode stopServerSocket La m thode stopServerSocket permet d arr ter le serveur de Socket public void stopServerSocket Socket client cr pour stopper le serveur de Socket serviceEnd true Socket client null try client new Socket localhost nbPortSocket catch Exception e System out println Erreur lors de la creation de la socket de communication error e try client close catch Exception e System out println Erreur lors de la fermeture de la socket error e Un Socket est cr pour se connecter sur le port d coute du serveur de Socket et le stopper gr ce au bool en serviceEnd Page 80 Grille de calculs 7 3 2 Classe g n rique SubServer La classe g n rique SubServer est charg e de cr er son groupe de Workers de g rer la tol rance aux pannes 7 3 2 1 La m thode createWorker La m thode createWorker permet de cr er le nombre de Workers demand s cr ation du groupe de Workers classe SubServer public boolean createWorker Node nod int nbl int nb2 services Jini lanc s si le mode JavaSpaces est activ e if runSpace launchJini boolean ok true cr ation du groupe de Workers try address InetAddress getLocalHost getCanonicalHostNam
159. tilise Globus pour ses solutions de grille il a d velopp le Oracle Globus Development Kit OGDK pour simplifier l utilisation d Oracle9i avec Globus Sun propose le Sun Grid Engine pour g rer une grille depuis une seule interface graphique Page 14 Grille de calculs II D finition du projet de m moire 2 1 Le projet ANR GCPMF 2 1 1 Contexte du projet Notre projet d architecture logicielle de grille s inscrit dans le cadre du projet Grilles de Calcul appliqu s des Probl mes de Math matiques Financi res GCPMF du programme de recherche Calcul Intensif et Grilles de Calcul de l Agence Nationale de la Recherche Ce projet est con u en collaboration avec des laboratoires de recherche en calcul num rique probabiliste appliqu la finance des quants de Banques intervenant dans le domaine de la finance de march et pour la partie informatique avec l INRIA de Sophia Antipolis le CERTIS de l ENPC et des soci t s priv es d informatique bancaire Pricing Partners et Summit Systems 2 1 2 Principaux objectifs informatiques Les applications financi res n cessitent de r soudre des probl mes de grandes tailles gestion de portefeuilles compos s de plusieurs milliers d actifs valuation de risque de cr dits contr le du risque global de la banque calculs d actifs exotiques complexes etc On peut distinguer principalement deux types de calculs des calculs courts quasiment en permanen
160. tion 4 2 il est aussi possible de lancer chaque service sur des machines diff rentes en cr ant un fichier de configuration pour chaque service Mais notre utilisation des JavaSpaces nous am ne le plus souvent les lancer sur une seule et m me machine Nous pouvons maintenant utiliser le JavaSpace nomm grid pour d poser et prendre des objets partir d une autre machine Il faut commencer par obtenir une r f rence de ce JavaSpace gr ce au code suivant public JavaSpace getSpace String lookupAddress JavaSpace space null String spaceName grid SecurityManager pour autoriser le t l chargement de cod if System getSecurityManager null System setSecurityManager new RMISecurityManager try construction d un patron pour rechercher le JavaSpace Class types JavaSpace class Entry l attributes new Name spaceName ServiceTemplate template new ServiceTemplate null types attributes recherche du service Look up LookupLocator lookup new LookupLocator jini lookupAddress ServiceRegistrar registrar lookup getRegistrar recherche du JavaSpace grid space JavaSpace registrar lookup template catch Exception e System err println Erreur e getMessage e printStackTrace System exit 1 return space On recherche le service Look up l adresse donn et on r cup re la r f rence du JavaSpace nomm g
161. tion calculant tr s rapidement le prix d une option chaque fois qu il n gocie la vente de cette option avec un client 6 1 2 D tail des options europ ennes N tant pas sp cialiste en finance nous allons introduire d une fa on simplifi e le fonctionnement des options europ ennes sans prendre en compte l existence in vitable d une inflation et de taux d int r ts Une option europ enne d achat appel e call est un contrat qui donne le droit son d tenteur mais non l obligation d acheter un ou plusieurs actifs sous jacents un prix fix K le prix d exercice strike une date d ch ance T ou date de maturit Une option europ enne de vente appel e put est le m me contrat mais pour vendre un ou plusieurs actifs un prix K une date T 27 L actif sous jacent peut tre une action ou un autre produit financier dont la valeur volue avec le march Le d tenteur d un call d cide g n ralement d acheter au trader l actif sous jacent la date T si le prix K fix la date de signature du contrat t 0 est inf rieur au prix S T de l actif cette date T sur le march Si S T est sup rieur K l option est exerc e achat et le d tenteur du call fait une conomie de S T K cette somme correspond la perte du trader dans l op ration Si S T est inf rieur ou gale K l option n est pas exerc e car ce n est pas l int r t du d tenteur de l
162. tionManager registrar lookup template catch Exception e System err println Erreur e getMessage e printStackTrace return transMng La technique pour rechercher un Transaction Manager est donn e la section 4 3 Le service Look up est recherch l adresse de la machine locale car les services Jini sont lanc s sur la machine h bergeant le SubServer Le Transaction Manager recherch a pour nom l adresse de la machine locale voir section 5 3 7 34 Classe g n rique PoolNode La m thode connectServer permet un objet de type PoolNode d obtenir une r f rence sur le Server public void connectServer try server Server ProActive lookupActive Server class getName localhost serveur catch Exception e System err println Erreur e getMessage e printStackTrace j Page 84 Grille de calculs La m thode lookupActive de ProActive permet de rechercher un objet actif l adresse indiqu e voir section 3 4 4 La m thode getNode est utilis e par le Server et les SubServers pour obtenir un n ud de r serve public int getNode si le nombre de n uds de r serv st gale 0 1 est renvoy if nbNode 0 server setMessage IL ne reste plus de machine de reserve pour compenser les pannes numNode 1 si le nombre de n uds de r serve est positif un mum ro de n ud est renvoy else nbNod
163. tiveObjectCreationException e setMessage Erreur lors de la creation de l objet Alive error e catch NodeException e setMessage Erreur lors de la creation de l objet Alive error e try ProActive setIlmmediateService subserver stopSub catch IOException e setMessage Erreur lors de l enregistrement d un service immediat error e groupSubServers add subserver groupAlives add alive return subservers La m thode factoryGroupSubServer d finie dans la classe fille permet de cr er un groupe de type UserSubServer La m thode getGroup de ProActive permet de mettre dans le groupe des objets actifs voir section 3 5 La m thode factorySubServer i d velopp e dans la classe fille permet de cr er un objet actif UserSubServer sur le n ud de num ro i dans le tableau de n uds nodes Un objet actif de type Alive est cr sur le m me n ud ainsi si cet objet ne r pond plus lors de la d tection des pannes on en conclut que le SubServer qui se trouve sur le m me n ud est en panne aussi voir section 5 6 2 La m thode stopSub est indiqu e comme prioritaire pour chaque SubServer cr ainsi on peut arr ter les calculs tout moment en appelant cette m thode 7 3 1 4 La m thode createGroupWorkers Nous allons analyser la m thode createGroupWorkers appel e dans la m thode startDeploy cr ation des Workers classe Server public void createGrou
164. tonGroup oSpace JCheckBox pace JCheckBox umberSubLabel JLabel umberSub JTextField umberWorkLabel JLabel umberWork JTextField JButton essageLabel JLabel essage JTexArea scroll JScrollPane Interface Graphic temStateChanged ctionPertormed isplay PoolNode bNode int umNode int server Server oolNode topServer tanServer tartinterface tartDeploy initNbL ostWorkersAndVectorLiving tariThreadSocket reate GroupWorkers reate GroupSubServer tanControl in etNbTimeFaultTolerance etMessage reduceNbWorker etNewGroupWorkers etNewGroupAlives reateNewSub JaunchNewSub reateServerSocket topServerSocket rror factoryGroupSubServer calculateLaunch elServerPartialResult etPartialResull ND Task etDatainitiate jetPortSocket tAddressFileDescriptor INameVirtualNode onnectServer etNbNode etNode Aive 5 Bont Containerint Containerint ive ive etLive bint ontainerint ontainerint jetNb Living ie boolean etBool etBool UserClient UserServer achine String bport int bTotalSimulations int bMC int eCalcul int bTime int bob int lastSubNbJob int bTaskSub intf ct double trike double ux double igma double j
165. tribu s grande chelle prenant en compte les besoins en tol rance aux pannes La conception de versions adapt es aux grilles de probl mes d algorithmique num rique connus comme tr s intensifs est n cessaire ex probl mes paraboliques options am ricaines en grande dimension Concevoir des m canismes de tol rance aux pannes engendrant de faibles surco ts de temps d ex cution afin de respecter les contraintes de temps m me en cas de d faillance l g re de la grille Concevoir un syst me de grille compatible avec les m canismes de s curit forte des institutions financi res sites s curis s et utilisation de r seaux d di s et s curis s Page 15 Grille de calculs 2 2 Le sous projet Risque 1 Ce travail de stage ing nieur fait partie du sous projet Work Package Risque 1 du projet ANR qui consiste distribuer et implanter des calculs de risques standards et les exp rimenter sur clusters et grilles Ce sous projet doit se r aliser de janvier 2006 janvier 2007 Les principales tapes de notre travail de m moire d ing nieur sont les suivantes Conception d une architecture logicielle de grille permettant le d veloppement d applications distribu es vari es par envoi de messages ou RMI et par m moire partag e Conception d une tol rance aux pannes s appuyant simultan ment sur des m canismes d velopp s aux niveaux applicatif et middleware pour minimiser les surco ts de
166. ue Page 73 Grille de calculs setMessage Creation du groupe de Workers terminee avec nbWorkers Workers crees et nbSubServers SubServers return okDeploy e La variable nbProcesseurs contient le nombre de n uds r ellement cr s elle est compar e au nombre de SubServers et de Workers que l interface graphique demande de cr er Si le nombre de n uds r ellement cr s est insuffisant la m thode s arr te en renvoyant l interface graphique un bool en false pour qu elle d truise les n uds cr s et qu elle attende une autre demande de d ploiement e La m thode setNbNode nbNode numNode de l objet actif poolnode permet de lui fixer le nombre de n uds de r serve et le num ro dans le tableau de noeuds du dernier n ud qui va recevoir un objet actif Worker e La m thode createGroupSubServer permet de cr er le groupe de SubServers e La m thode connectServer localhost ex cut e sur le groupe de SubServers permet aux SubServers de r cup rer l adresse du Server pour obtenir une r f rence sur l objet actif server et utiliser ses m thodes e La m thode setRunSpace runSpace permet aux SubServers de savoir s il faut lancer les services Jini voir section 5 4 e La m thode initNbLostWorkersAndVectorLiving permet d initialiser un tableau et un vecteur utilis s pour la gestion des pannes e La m thode createGroupWorkers demande aux SubServers d
167. un probl me technique expliqu la section 5 8 2 Page 81 Grille de calculs 7 3 2 2 La m thode getSpace La m thode getSpace utilis e par la m thode createWorker permet au SubServer et ses Workers d obtenir une r f rence sur le JavaSpace s il a t activ public void getSpace try SecurityManager autorise le t l chargement de cod if System getSecurityManager null System setSecurityManager new RMISecurityManager String spaceName address construction d un patron pour rechercher le JavaSpace Class types JavaSpace class Entry l attributes new Name spaceName ServiceTemplate template new ServiceTemplate null types attributes LookupLocator lookup new LookupLocator jini address recherche du service de Look up ServiceRegistrar registrar lookup getRegistrar recherche du JavaSpace space JavaSpace registrar lookup template les Workers recherche le JavaSpace l adresse donn workers findJavaSpace address catch Exception e error e La technique pour rechercher un JavaSpace est donn e la section 4 3 Le service Look up est recherch l adresse de la machine locale car les services Jini sont lanc s sur la machine h bergeant le SubServer Le JavaSpace recherch a pour nom l adresse de la machine locale voir section 5 3 La m thode findJavaSpace String address fournit aux Worke
168. ur http du look up et du JavaSpace start transient services config voir figure 4 3 On trouve des explications sur la fa on de param trer le fichier de la figure 4 3 dans la documentation fournie par Sun Microsystemes accompagnant le Starter Kit Jini v2 1 Si on analyse un peu ce fichier on remarque qu il faut toujours donner un fichier de politique de s curit Le serveur http est lanc sur le port 8088 et il fournit aux autres services les classes se trouvant dans le r pertoire suivant usr java Jini2 _1 1ib d1 On attribue la variable host l adresse du serveur http celui ci tant sur la m me machine que tous les autres services il suffit donc de rechercher l adresse de la machine locale Les services sont cr s en mode non activable NonActivatableServiceDescriptor et l impl mentation des services est en mode transient TransientRegistrarImpl et TransientOutriggerImpl On lance le serveur http le service Look up et un JavaSpace non activables en mode transient avec cette commande java jar Djava security policy usr users staginfo bezzine JavaSpaces Config jsk all policy usr java Jini2 _1 1ib start jar usr users staginfo bezzine JavaSpaces Config start transient services config Page 29 Grille de calculs import com sun jini start NonActivatableServiceDescriptor import com sun jini start ServiceDescriptor import com sun jini config ConfigUtil com sun jini start
169. uveler le lease de la transaction dans un fhread voir section 4 4 7 4 4 Classe UserData La m thode connectDB permet de se connecter la base de donn es public static void connectDB connexion la base de donn es try Class forName com mysql jdbc Driver conn DriverManager getConnection jdbc mysql 193 54 24 127 actions calcul proactive stmt conn createStatement catch Exception e System err printin erreur e getMessage e printStackTrace se trouvant une adresse donn La m thode getConnection permet de se connecter la base de donn es nomm e actions sur la machine se trouvant l adresse IP 193 54 24 127 La m thode getBasket permet d obtenir des listes de nombres contenus dans la base de donn es public static UserInit getBasket int nbActifs connectDB doublel listeActif new double nbActifs double listeVolatilite new double nbActifs double listeCorrelation new double nbActifs try r cup ration des informations dans la table panier ResultSet rs stmt executeQuery SELECT FROM panier for int i 0 i lt nbActifs i rs next listeActif i rs getDouble actif listeVolatilite i rs getDouble volatilite listeCorrelation i rs getDouble correlation conn close catch Exception e System err println Error e getMessage e printStackTrace j se
170. vec leur groupe de Workers demanderont plus souvent des t ches 2 a Un quilibrage de charge statique entre un SubServer et ses Workers le SubServer distribue le nombre de simulations attribu es par le Server en le divisant par le nombre de Workers r partition toujours id ale sur une grille homog ne _2 b Un quilibrage de charge dynamique entre un SubServer et ses Workers chaque SubServer g re une r serve de N t ches l mentaires fournis par le Server chaque t che contenant un nombre n de simulations de Monte Carlo Chaque Worker envoie le r sultat de sa t che au SubServer qui la traite et ensuite relance le Worker pour une nouvelle t che s il en reste en r serve Lorsque les N t ches ont t trait es le SubServer envoie au Server le r sultat global Ainsi les Workers les plus rapides demanderont plus souvent des t ches utilisant pleinement leur puissance voir figure 5 3 En ProActive le SubServer envoie une premi re t che chaque membre de son groupe puis il re oit le r sultat de chaque Worker le stocke l analyse et relance une nouvelle t che sur le Worker Avec les JavaSpaces le SubServer place toutes les t ches l mentaires dans la m moire partag e virtuelle les Workers r cup rent et traitent les t ches et le SubServer collecte et analyse les r sultats Page 44 Grille de calculs CD l NS des t ches jusqu N t ches t che n simulations il il il m
171. vers pour les g rer efficacement Page 96 Grille de calculs Les courbes obtenues ne sont pas tr s stables certainement parce que l quilibrage de charge entre le Server et les SubServers tait statique Il faudrait relancer ces tests avec un quilibrage de charge dynamique maintenant disponible dans PicsouGrid mais malheureusement le site d Orsay est actuellement en panne 8 2 Performances de PicsouGrid sur une grille en mode ProActive Option simple avec 100 millions de simulations 70 A E 60 8 50 7 ao 2 40 4 SubServers sur 4 sites 8 30 s 4 SubServers sur 1 site 3 20 2 10 D E o 0 20 40 60 80 100 Nombre de workers Figure 8 7 Temps de calcul pour un site et pour 4 sites Option simple avec 100 millions de simulations 100 90 80 70 60 50 40 30 20 10 4 SubServers sur 4 sites s 4 SubServers sur 1 site S P P Speed up 0 20 40 60 80 100 Nombre de workers Figure 8 8 Speed up pour un site et pour 4 sites Page 97 Grille de calculs Nous avons compar les performances de l application calculant une option europ enne simple avec 4 SubServers r partis sur un seul site celui d Orsay et sur 4 sites Orsay Rennes Nancy et Sophia Antipolis Les 4 sites poss dent les m mes caract ristiques techniques donn es la section
172. x d exercice 43 Taux sans risque OL Taux de volatilite 0 05 Maturite du contrat Nombre d intervalle de temps 12 Nombre de simulations 10000000 Nombre d actifs lere 2eme barriere Prix de l actif Taux de volatilite Correlation 40 0 0 18 0 24 0 21 0 3 0 24 aaa E a 27 3 ois o3 35 0 0 21 024 Lancer les calculs Recuperation d actifs Resultat de l option sur panier avec 10000000 simulations effectuees Put 3 7353018369452 82E 4 Call 2 703375411334965 Intervalle de confiance du Put 9 3485352077444E 5 j 9 19114744162738 1E 4 Resultat de l option simple avec 10000000 simulations effectuees Put 0 05542803312383695 Figure 6 1 Interface graphique du client de pricing d options europ ennes Page 64 Grille de calculs 6 2 Utilisation de la plateforme Grid 5000 6 2 1 Caract ristiques techniques Grid 5000 est un ensemble de 15 clusters r partis sur 9 sites en France voir section 1 4 Ces sites sont reli s entre eux par le r seau priv RENATER avec un d bit allant de 2 5 Gbit s 10 Gbit s Actuellement la grille poss de presque 3000 processeurs ce chiffre augmente continuellement pour atteindre 5000 processeurs Certains n uds poss dent un seul processeur et d autres 2 ou 4 Un grand nombre de processeur sont des AMD Opteron de 2 Ghz 2 4 Ghz Les utilisateurs ont leur compte cr pour chaque site et g r par LDAP Cependant le montage N
173. xiste des machines de r serve un nouveau SubServer est cr sur ce PC pour remplacer celui disparu La m me proc dure est utilis e entre un SubServer et ses Workers En ce qui concerne le temps d attente entre chaque appel sur l objet Alive nous avons exp rimentalement choisi une valeur de 100 millisecondes pour s adapter au r seau Gigabits Ethernet de Sup lec Cette valeur est utilis e par d faut par PicsouGrid mais l utilisateur peut la modifier pour l adapter aux caract ristiques de son r seau Page 47 Grille de calculs D tection des pannes Workers Envoi des r sultats partiels SubServers O objet actif Server SubServer Worker PC de r serve J OL Figure 5 5 M canismes de tol rance aux pannes O objet actif Alive Si la panne d un Worker se produit pendant une tape de calcul un nouveau Worker est cr et peut effectuer les calculs mais on perd le calcul commenc par l ancien Worker depuis l envoi d une t che par le SubServer Donc plus les t ches seront petites plus on r duit les temps de r cup ration sur erreur mais plus on augmente les communications sur le r seau L utilisateur fixera la taille des t ches en fonction des performances de son r seau voir section 5 6 4 Si un SubServer dispara t pendant des calculs on relance les calculs sur le nouveau SubServer Cependant pour viter de recommencer les calculs depuis le d but les SubServers envoie
Download Pdf Manuals
Related Search
Related Contents
Samsung YH-925GS Manuel de l'utilisateur Infinity CascadeTM Nine User's Manual Copyright © All rights reserved.
Failed to retrieve file