<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Conception d'un Simulateur de Grilles Orienté Gestion d'Équilibrage</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fatima Kalfadj</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yagoubi Belabbas</string-name>
          <email>byagoubi@yahoo.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>et Meriem Meddeber</string-name>
          <email>m.meddeber@yahoo.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Université d'Oran, Faculté des Sciences, Département d'Informatique</institution>
          ,
          <addr-line>31000 Oran, Algérie</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Université de Mascara, Faculté des Sciences, Département d'Informatique</institution>
          ,
          <addr-line>29000 Mascara, Algérie</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Résumé. Les dernières évolutions dans le calcul distribué ont conduit à l'apparition de nouvelles infrastructures appelées grilles de calcul. La gestion d'équilibrage de charge dans ce type d'infrastructure est complexe et exige donc des outils sophistiqués pour analyser les algorithmes avant de les appliquer aux vrais systèmes. Cependant une recherche étendue a été conduite dans le domaine de la simulation pour modéliser de tels systèmes et comprendre leur comportement. En conséquence, un nombre croissant d'outils de simulation ont été conçus et développés. Dans ce papier nous proposons un outil de simulation de grilles qui fournit des primitives pour la création et l'ordonnancement des tâches indépendantes. C'est un simulateur qui permet d'évaluer les performances d'un modèle distribué pour résoudre le problème d'équilibrage de charge dans les grilles de calcul. Mots-clés: Grilles de calcul, Équilibrage de charge, Simulateur de grilles, Tâches indépendantes, Modèle d'équilibrage de charge.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Dés les débuts de l’informatique, les scientifiques furent les plus gros
consommateurs de puissance de calcul. La dernière décennie a également vu
l’avènement des réseaux et d’Internet. De plus en plus de projets de recherche
impliquent de multiples partenaires pouvant être repartis aux quatre coins du globe. Il
devient alors nécessaire de disposer d’une infrastructure commune, facilitant les
partages d’informations mais aussi de ressources. C’est dans ce contexte, qu’est né le
concept de Grille de Calcul (Grid Computing): une infrastructure virtuelle constituée
d'un ensemble coordonné de ressources informatiques potentiellement partagées,
distribuées, hétérogènes et sans administration centralisée [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Cependant la gestion
de ressource dans ce type d'infrastructure pose évidemment des problèmes beaucoup
plus complexes que ceux posés par les systèmes distribués traditionnels, et ce à cause
notamment de leur hétérogénéité et de leur dimension dynamique. Parmi ces
problèmes, la répartition de charge où il faut en effet éviter, dans la mesure du
possible, les situations où certains noeuds sont surchargés alors que d'autres sont sous
chargés ou complètement libres. Pour remédier à ce problème plusieurs algorithmes
de répartition de charge ont été développés [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Lorsqu'il s'agit de comparer la performance de deux algorithmes, les conditions
expérimentales doivent nécessairement être les mêmes. Or assurer la même évolution
de multiples composants d'un environnement distribué dans le contexte de la grille est
impossible: un trop grand nombre de phénomènes amène un non déterminisme de la
plateforme de test. Il est d'usage de les simuler. Beaucoup d’outils standards et
spécifiques à l'application ont été établis dans cette optique.</p>
      <p>Cependant, ces outils de simulation ne permettent pas de tester facilement de
nouveaux algorithmes de gestion d'équilibrage pour les grilles : ils leurs manquent
les fonctionnalités permettant la mise en oeuvre de la politique d’informations
nécessaire à tout système d’équilibrage. Cette information concerne aussi bien l’état
de charge des ressources disponibles que la charge du réseau de communication à un
instant donné.</p>
      <p>Dans cet article nous proposons un simulateur de grilles nommé OrientéSim qui :
(i) fournit des primitives pour la création et l'ordonnancement des tâches
indépendantes, (ii) permet d'évaluer les paramètres de performance d'un modèle
distribué pour résoudre le problème d'équilibrage de charge dans les grilles de calcul.</p>
      <p>Le reste de cet article est organisé comme suit : Dans la deuxième section, nous
présentons une taxonomie des outils de simulation. La troisième section cite quelques
outils de simulation et propose un tableau de comparaison. La quatrième section
présente le simulateur proposé. Dans la cinquième section, nous présenterons et
discuterons quelques résultats expérimentaux relatifs au model développé. La sixième
section conclut cet article et présente quelques perspectives futures de recherche.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Taxonomie des outils de simulations</title>
      <p>
        Les outils de simulation sont nombreux et il est difficile d'en faire une présentation
détaillée. Pour cela, la nécessité d'avoir une taxonomie qui permet d'uniformiser les
terminologies pour une meilleure description est indispensable. Ainsi, Anthony
Sulistio, Chee Shin Yeo et Rajkumar Buyya [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ] ont proposé une taxonomie largement
adoptée.
      </p>
      <p>Taxonomie des utilisateurs : l'outil de simulation peut être utilisé comme un
simulateur ou comme un émulateur ; un simulateur est un outil qui représente
un système réel par contre l'émulateur est un outil qui agie comme un système
réel.</p>
      <p>Taxonomie de simulation : en général, une simulation comporte trois
propriétés :</p>
      <p>Présence du temps: indique si la simulation d'un système prend en
compte le facteur temps. Une simulation statique ne considère pas le
temps en tant qu'élément de simulation, contrairement à une simulation
dynamique.</p>
      <p>Valeur de base: spécifie les valeurs que peut prendre une entité simulée.
Une simulation discrète à des valeurs d’entités appartenant à un intervalle
fini tandis qu’une simulation continue propose des valeurs d’entités
appartenant à un intervalle infini.</p>
      <p>Comportement: la simulation peut se dérouler d'une manière
déterministe (sans événements aléatoires) ; Ainsi la répétition de la même
simulation rendra toujours les mêmes résultats contrairement à une
simulation probabiliste (avec événements aléatoires) ; la répétition de la
même simulation rend souvent des résultats différents.</p>
      <p>Taxonomie de conception : Cela consiste à classer les outils de simulations
par catégories basées sur les composants et les dispositifs nécessaires à la
simulation:</p>
      <p>Moteur de simulation : la simulation peut être exécutée en mode
séquentiel ou en mode parallèle ; Une simulation séquentielle est
exécutée en utilisant un seul processeur, alors qu'une simulation
parallèle ou distribuée est exécutée en utilisant plusieurs processeurs.</p>
      <p>Environnement de conception : détermine comment l'utilisateur
utilise l'outil pour concevoir des modèles de simulation. Un langage
fournit un ensemble de constructions définies pour concevoir des
modèles de simulation, alors qu'une bibliothèque fournit un ensemble
de routines pour être utilisé avec un langage de programmation.</p>
      <p>Interface utilisateur: détermine comment l'utilisateur agit avec l'outil
de simulation. Une interface de conception visuelle permet à
l'utilisateur de créer un modèle de simulation beaucoup plus facile et
plus rapide. Alors qu'une interface de conception non-visuel exige à
l'utilisateur d'écrire des codes de programme ce qui exige plus de
temps et d'effort.</p>
      <p>Supports système: fournit les dispositifs utiles et prêts à employer
qui aident l'utilisateur à construire un modèle de simulation précis.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Quelques outils de simulation de grille</title>
      <p>Dans la littérature beaucoup d’outils standards et spécifiques à l'application ont été
établis parmi lesquels nous pouvons citer :</p>
      <p>
        Bricks [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], Il a été proposé et conçu pour des études de comparaisons
d'algorithmes d'ordonnancement.
      </p>
      <p>
        OptorSim [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], conçu pour l'étude d'algorithmes d'ordonnancement
traitant spécifiquement de la réplication ou de la migration de
données,
GridSim [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] ou SimGrid [6], des outils de modélisation de ressources
et réseaux d’une grille de calcul pour tester des algorithmes
d'ordonnancement distribués.
      </p>
      <p>
        MicroGrid [
        <xref ref-type="bibr" rid="ref7">8</xref>
        ], permet aux développeurs d'exécuter les applications
dans une grille virtuelle. Plus précisément, il a été conçu pour émuler
Globus[
        <xref ref-type="bibr" rid="ref8">9</xref>
        ].
      </p>
      <p>Le tableau (Table 1) compare ces quatre simulateurs en respectant la taxonomie
présentée dans la deuxième section.</p>
    </sec>
    <sec id="sec-4">
      <title>4 Simulateur proposé (OrientéSim)</title>
      <sec id="sec-4-1">
        <title>4.1 Architecture</title>
        <p>La figure Fig. 1, présente les différents composants du simulateur que nous avons
développé dans le but d’avoir un outil approprié à nos besoins, à savoir modéliser
l’information de charge qui caractérise les ressources de calcul d’une grille,
implémenter et évaluer les performances des stratégies d’équilibrage de charge
dédiées aux environnements de grille de calcul.</p>
        <p>Sites: fournit les ressources de calcul nécessaires à l’exécution des
tâches soumises par l'ordonnanceur.</p>
        <p>Gestionnaire d'équilibrage: chaque gestionnaire participe au
maintien des informations de charge et à l'équilibrage de la charge
globale des éléments de calcul de la grille. Les différents
gestionnaires peuvent échanger leurs informations de charge.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2 Modèle de ressource</title>
        <p>Chaque ressource représente un élément de calcul, et se caractérise par :
Hétérogénéité : sur le plan matériel (architecture des processeurs, nombre
de processeurs, vitesse CPU mesurée en MIPS1, File d’attente) et sur le
plan logiciel (système d'exploitation).</p>
        <p>Période : durant laquelle, la ressource mesure sa charge courante.</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3 Modèle de réseau</title>
      </sec>
      <sec id="sec-4-4">
        <title>4.4 Implémentation</title>
        <p>Dans OrientéSim il n'existe pas des protocoles réseaux ou de normes qui doivent
être suivies. Tous les éléments sont reliés en utilisant des liens logiques.</p>
        <p>OrientéSim est écrit en Java, pour les raisons principales suivantes :
Approche orientée objet : où il y a plusieurs composants distincts
qui agissent les uns sur les autres par l'intermédiaire de
méthodes bien définies.</p>
        <p>Capacité d'exécuter des threads concourants : les threads sont
assignés à chaque site et à chaque CE (élément de calcul),
l'ordonnanceur et un thread simple.</p>
        <p>Portabilité : permettant à la simulation d'être distribuée
facilement sans avoir à recompiler le code pour les différents
systèmes.</p>
        <p>Extensibilité : Le code est structuré dans plusieurs packages, dont
chacun traite une partie différente de la simulation.</p>
        <sec id="sec-4-4-1">
          <title>1 Million d’Instructions Par Seconde</title>
        </sec>
      </sec>
      <sec id="sec-4-5">
        <title>4.5 Processus de simulation</title>
        <p>La figure fig. 2, montre les différentes interactions entre les composants
d’OrientéSim pendant la vie de la simulation, c'est un exemple de diagramme de
séquence dans lequel le temps augmente de haut en bas.</p>
        <p>Tout d'abord l'ordonnanceur affecte chaque tâche soumise par l’un des utilisateurs
à un élément de calcul selon l’une des stratégies d'ordonnancement présentées
cidessus. Les tâches sont insérées aux files d'attente de chaque élément de calcul.
Quand l'élément de calcul est prêt à traiter la tâche il la dépile et l'exécute.</p>
        <p>A chaque période de temps l'élément de calcul évalue sa charge courante, envoie
son information de charge au gestionnaire d'équilibrage, ce dernier prend les décisions
d'équilibrage de charge, la procédure se répète jusqu'à la fin de la simulation.</p>
        <p>Pour valider notre simulateur nous avons implémenté un modèle distribué reposant
sur une architecture hybride. Sur la base de ce modèle nous avons développé une
stratégie d'équilibrage centralisée locale, intra-cluster, et une deuxième totalement
distribuée, inter-clusters. L’ensemble des expériences ont été réalisées sur un PC
Pentium DUAL CPU de 2.00 GHz, doté d’une mémoire de 1 Go et fonctionnant sous
Windows XP.</p>
      </sec>
      <sec id="sec-4-6">
        <title>5.1 Modèle de la grille</title>
        <p>Dans ce modèle, nous considérons qu’une grille de calcul est composée d’un
ensemble de Clusters qui communiquent à travers un réseau WAN. Chaque cluster
est à son tour composé d’un ensemble de Noeuds de calcul qui communiquent à
travers un réseau LAN. Ces entités (noeuds de calcul, clusters et réseaux locaux)
peuvent être hétérogènes. Nous pouvons représenter cette topologie par un modèle
arborescent à deux niveaux (Fig. 3).</p>
        <sec id="sec-4-6-1">
          <title>Les deux niveaux sont définis comme suit :</title>
          <p>Niveau 1 : ce niveau est constitué d’un ensemble de noeuds qui
représentent les clusters de la grille. Chaque noeud est appelé gestionnaire
du cluster.</p>
          <p>Niveau 2 : ce niveau est à son tour constitué d’un ensemble de noeuds, qui
correspondent aux noeuds de calcul de chaque cluster.</p>
        </sec>
      </sec>
      <sec id="sec-4-7">
        <title>5.2 Stratégie d'équilibrage de charge</title>
        <p>Selon la structure arborescente du modèle proposé nous avons développés une
stratégie d'équilibrage de charge à deux niveaux : Intra-cluster et Inter-clusters.
Équilibrage intra-cluster : Dans cette première phase, chaque
gestionnaire de cluster et selon les informations de charge
transmises par ses éléments de calcul, décide de lancer une
opération d’équilibrage de charge locale à son cluster.
Équilibrage intra-grille cette deuxième phase est réalisée entre
les clusters de la grille, elle est lancée par chaque gestionnaire de
cluster qui ne parvient pas à équilibré sa charge localement.</p>
      </sec>
      <sec id="sec-4-8">
        <title>5.3 Résultats de l’algorithme Intra-cluster</title>
        <p>Nous avons utilisé la stratégie aléatoire comme stratégie d'ordonnancement et
nous avons varié le nombre de noeuds de calcul de 40 à 100, avec un nombre de
tâches variant de 4000 à 8000.</p>
        <p>Le tableau suivant, montre les gains obtenus en temps de reponse, temps d'attente
et temps d'exécution.
Nous pouvons constater à partir des résultats ci-dessus que pour parvenir à stabiliser
le système et avoir de bons gains, il faut avoir, pour une charge de 4000 à 8000 tâches
et un nombre de ressources variant de 60 à 100 noeuds.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>6 Conclusion</title>
      <p>Dans cet article nous avons proposé un outil de simulation de grille OrientéSim,
qui dispose d’une architecture extensible et modulaire, il fournit des primitives pour la
création et l'ordonnancement des tâches indépendantes et permet de tester les
paramètres de performances d'un modèle distribué pour l'équilibrage de charge dans
les grilles de calcul.</p>
      <p>Comme perspectives, nous pensons à :</p>
      <sec id="sec-5-1">
        <title>Implémenter d’autres modèles d'équilibrage de charge.</title>
        <p>Etendre notre simulateur par un module de gestion de réplication.
Nous avons implémenté deux stratégies d’équilibrage de charge basé
essentiellement sur un placement de taches comme mécanisme de
transfert. Nous aimerions élargir notre simulateur pour étudier
l’équilibrage de charge avec une migration de taches qui s’avère une
opération très complexe à réaliser.</p>
        <p>Appliquer l'équilibrage de charge dans le cas ou les tâches sont
dépendantes.</p>
        <p>Nous avons vue que dans OrientéSim il n'existe pas des protocoles et des
normes qui doivent être suivie on aimerait bien d'implémenter des
protocoles réseau.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>I.</given-names>
            <surname>Foster</surname>
          </string-name>
          and
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Kesselman « The Grid: Blueprint for a New Computing Infrastructure»</article-title>
          . Morgan Kauffman, San Francisco,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>B.</given-names>
            <surname>Yagoubi</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Slimani</surname>
          </string-name>
          , «
          <article-title>Dynamic Load Balancing Strategy for Grid computing»</article-title>
          ,
          <source>Transactions on Engineering, Computing and Technology</source>
          , vol
          <volume>13</volume>
          , May
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>K.</given-names>
            <surname>Aida</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Takefusa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Nakada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Matsuoka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sekiguchi</surname>
          </string-name>
          , and U. Nagashima, «
          <article-title>Performance Evaluation Model for Scheduling in a Global Computing System»</article-title>
          ,
          <source>Int. J. of High Performance Computing Applications</source>
          ,
          <volume>14</volume>
          (
          <issue>3</issue>
          ),
          <year>2000</year>
          ,
          <fpage>268</fpage>
          -
          <lpage>279</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Bell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Cameron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Capozza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Millar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Stockinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zini</surname>
          </string-name>
          , «
          <article-title>OptorSim - A Grid Simulator for Studying Dynamic Data Replication Strategies»</article-title>
          ,
          <source>Int. J. of High Performance Computing Applications</source>
          ,
          <volume>17</volume>
          (
          <issue>4</issue>
          ),
          <year>2003</year>
          ,
          <fpage>403</fpage>
          -
          <lpage>416</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R.</given-names>
            <surname>Buyya</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Murshed</surname>
          </string-name>
          , «
          <article-title>GridSim: A Toolkit for the Modeling and Simulation of Distributed Resource Management and scheduling for Grid Computing»</article-title>
          ,
          <source>Journal of Concurrency and Computation : Practice and Experience</source>
          ,
          <fpage>pages1175</fpage>
          -
          <lpage>1220</lpage>
          ,
          <year>2002</year>
          6. H. Casanova, «
          <article-title>Simgrid: A Toolkit for the Simulation of Application Scheduling»</article-title>
          .
          <source>Proc. of the First IEEE/ACM Int. Symposium on Cluster Computing and the Grid</source>
          , Brisbane, Australia,
          <year>2001</year>
          ,
          <fpage>430</fpage>
          -
          <lpage>437</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Sulistio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Yeo</surname>
          </string-name>
          and
          <string-name>
            <given-names>R</given-names>
            <surname>Buyya</surname>
          </string-name>
          «
          <article-title>A taxonomy of computer-based simulations and its mapping to parallel and distributed systems simulation tools» sortware practice and experience</article-title>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          8.
          <string-name>
            <given-names>H.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jakobson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bhagwan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Taura</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Chien</surname>
          </string-name>
          .
          <article-title>The microgrid</article-title>
          ,
          <source>proceedings of the 2000 ACM/IEEE conference on supercomputing, page 53</source>
          . john wiley and Sons,Ltd.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          9.
          <string-name>
            <surname>I. Foster.</surname>
          </string-name>
          <article-title>Globus toolkit version 4 : Software for service oriented systems</article-title>
          .
          <source>In IFIP: International Conference on Network and Parallel Computing</source>
          , pages
          <fpage>2</fpage>
          -
          <lpage>13</lpage>
          , Beijing, China,
          <year>November 2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>