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