<!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>Mapping multi Objectifs d'application intensive Sur architecture MPSOC</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>B.FARID</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>AH.BENYAMINA</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. Informatique Université d'Oran, Algérie Dept. Informatique Université d'Oran</institution>
          ,
          <addr-line>Algérie</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Fig. 1 Graphe d'application</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Résumé- Ce travail nous permet de vulgariser une phase très importante du cycle de développement des systèmes embarqués : la conception software. Dans cette phase, le défi à relever est celui d'une application hiérarchique NOC hétérogène. Ceci Dans le but de satisfaire des objectifs contradictoires et de fournir des résultats dans des délais raisonnables. Nous utilisons pour cela les différentes approches exactes et heuristiques tout en adoptant un modèle permettant de représenter une structure à différents niveaux d'abstraction, dans le but d'être plus proche des problèmes d'association d'arbre hiérarchique : application et architecture.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Mots clés— MPSoC, NOC, Dijkstra, Optimisation multi</title>
      <p>objectifs, algorithme génétique, Branch and bound.</p>
      <sec id="sec-1-1">
        <title>I. INTRODUCTION</title>
        <p>Un système embarqué [1] peut être défini comme un
système électronique et informatique autonome ne possédant
pas d‘entrées/sorties standards comme un clavier ou un écran.
On peut avoir un ou plusieurs systèmes embarqués sur puces
(SOC, System On Chip), de nature hétérogènes et donc
complexes. Ils sont souvent constitués de plusieurs
processeurs de types différents (FPGA, DSP, GP par
exemple), avec des fonctions dédiées ou reconfigurables [4].
Les applications embarquées qu‘on a l‘habitude de traiter sont
généralement complexes [2] et parfois sont hiérarchiques
telles les encodeurs MPEG, H263, H264…….etc. Ce type
d‘applications est caractérisé par des parties le constituant de
types différents. L‘un a trait au traitement irrégulier, l‘autre a
trait au traitement régulier [3]. Ce dernier représente le calcul
intensif qu‘on trouve en grande partie dans les applications
temps réel embarquées [5]. A ces deux types d‘applications
correspondent deux types de traitements parallèles l‘un est dit
(irrégulier) correspond au parallélisme de taches et l‘autre
(régulier) corresponde au parallélisme de données.
C‘est pour cette raison et afin d‘avoir plus de performance
qu‘on ne traite pas ce type d‘application dans sa globalité avec
une seule stratégie. Pour faire le mapping de ce type
d‘application on dont réaliser le mapping des deux parties le
constituant différemment. Ce qui nous amène à proposer une
stratégie hybride sous le mapping hiérarchique constitué d‘une
part de stratégie de mapping pour le globale irrégulier et
d‘une stratégie pour le locale régulier [6]. D‘où notre
démarche proposant une solution globale hybride basée sur les
algorithmes génétiques, Dijkstra multi objectif et la méthode
Branch and bound.</p>
        <p>II. DEFINFITION ET FORMULATION</p>
        <p>Les communications entre les tâches de notre application et
les composantes de notre architecture cible sont représentées
par deux graphes orientés.</p>
        <sec id="sec-1-1-1">
          <title>A. Définition 1</title>
          <p>Le graphe d‗application (TG : Task Graph) est un graphe
orienté G(T,E) où chaque sommet représente un module
(tâche) de l‘application et l‘arc orienté ( , ) noté
représente les communications entre les modules et . Le
poids de l‗arc noté par représente le volume des
communications de à (Fig1).</p>
          <p>le graphe d‗architecture NT (NoC Topology graph) est un
graphe orienté P(S,F) où chaque sommet représente un
noeud de la topologie et l‗arc ( , ) noté par représente
un lien physique direct entre les éléments de et de
l‗architecture. Le poids de l‗arc noté par représente la
bande passante,l‘energié consomé et la latence disponible à
travers le lien physique (Fig. 2).</p>
          <p>Le mapping du graphe d‗application G(T,E) sur le graphe
d‗architecture P(S,F) est définit par la fonction de mapping
suivante :
map : T → , s.t map ( )= .
le mapping est définit si : (Fig3).</p>
          <p>Notre application est définie comme un ensemble de tâches
[7], T = {t1, t2, . . ., tn}, et l‘architecture cible comme un
ensemble de processeurs P = {P1,P2, . . .,Pn} .Comme
hypothèse les processeurs Peuvent fonctionner en plusieurs
modes m1, m2,m3. (Mettre les processeurs en plusieurs modes
nous donne plus de diversité dans l‘optimisation de
placement)</p>
          <p> Le temps d‘exécution (D):
Soit une tâche (Ti) place sur un processeur (Pj), calculer la
communication Dcom(i) revient à chercher le plus court chemin
entre (Pj) et tout autre processeur (PL), là où les tâches
successeurs sont placées.</p>
          <p>( )</p>
        </sec>
      </sec>
      <sec id="sec-1-2">
        <title>Soit</title>
      </sec>
      <sec id="sec-1-3">
        <title>Donc Après l‘ordonnancement:</title>
        <p>(
(</p>
        <p>|
()
|)
( )
∑
|</p>
        <p>|
( )
/i=1……nombre de tâche
()
: le plus court chemin entre
et
, alors :
(
))
Tel que :
: Le temps total d‘exécution</p>
        <p>( ) : La durée d'exécution d‘une tâche i placée sur un
processeur j s'exécutant au mode d‘exécution m (sans prendre
en compte les communications).</p>
        <p>: Le temps total d‗exécution d‗une tâche i en prenant en
considération les communications.</p>
        <p>() : Le nombre de cycles nécessaires d‘une tache pour
s‘exécuter sur un processeur.</p>
        <p>: La fréquence d‘horloge d‘un processeur au mode m.
() : Durée de communication prise le transfert de
données (résultat) de la tâche (i) ver ses successeurs.
: Quantité de données échangées entre les tâches i et k
( | |): La bande passante minimale dans le
chemin de à .</p>
        <p> L‘énergie consommée (E):</p>
      </sec>
      <sec id="sec-1-4">
        <title>Energie d‘exécution : Energie de communication : Energie totale : ∑</title>
        <p>( )
(
∑</p>
        <p>)
()
(
)
Tel que :</p>
        <p>( ): L‘énergie consommée par la tâche i affectée au
processeur j au mode m
: Energie d‘exécution unitaire</p>
        <p>: La consommation d‗énergie due à la communication de
la tâche i</p>
        <p>: La consommation d‗énergie totale, en prenant en
considération la consommation des processeurs et des liens.</p>
      </sec>
      <sec id="sec-1-5">
        <title>III. METHODE DE RESOLUTION</title>
        <p>Le problème à résoudre dans sa globalité est un problème
d‘assignation, d‘affectation et d‘ordonnancement «AAS».
Ceci consiste principalement à assigner et ordonnancer les
taches et les communications de l'application sur les
ressources d'architecture cible de telle façon que les objectifs
spécifiés soient atteints.</p>
        <p>
          Dans notre approche il y‘a des objectifs à respecter comme la
minimisation de la consommation d‘énergie, maximisation du
temps de Performance. Ces objectifs sont très importants car
le fonctionnement des systèmes embarqués mobiles dépendent
de la durée de vie de la batterie [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] ce qui nécessite la
réduction de la consommation d´énergie et maximiser de la
vitesse d'exécution ce qui revient à dire minimiser le temps
d'exécution. En réalité ces objectifs sont contradictoires car en
réduisant l´énergie consommée on va augmenter le temps
d‘exécution des composants(CPU), fonctionnant en mode
économie. Pour cela, on est obligé de faire du multi-objectifs
afin de trouver un compromis entre les différents objectifs
contradictoires.
        </p>
        <p>
          Donc nous proposons une approche multi-objectifs basée sur
la technique d‘optimisation par les algorithmes génétiques et
l‘algorithme de B&amp;B pour résoudre notre problème AAS.
1) Algorithme1: Algorithme génétique(AG): appartient à la
famille des algorithmes évolutionnistes. Leur but est d'obtenir
une solution approchée à un problème d'optimisation, lorsqu'il
n'existe pas de méthode exacte (ou que la solution est
inconnue) pour le résoudre en un temps raisonnable. Les
algorithmes génétiques utilisent la notion de sélection
naturelle et l'appliquent à une population de solutions
potentielles au problème donné [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>L‘algorithme génétique se résume par :</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Algorithme 1</title>
      <p>Algorithme Génétique







</p>
      <sec id="sec-2-1">
        <title>Initialisation de la population. Evaluation des fonctions objectives. pour i = 0 à MaxIter faire Sélection</title>
        <p>Croisement
Mutation
Evaluation des fonctions objectives
fin pour
2) Algorithme2: Algorithme de branch and bound (B&amp;B) :</p>
        <p>
          Un algorithme par séparation et évaluation, également
appelé selon le terme anglo-saxon branch and bound, est une
méthode générique de résolution de problèmes d'optimisation,
et plus particulièrement d'optimisation combinatoire ou
discrète. C'est une méthode d'énumération implicite : toutes
les solutions possibles du problème peuvent être énumérées
mais, l'analyse des propriétés du problème permet d'éviter
l'énumération de larges classes de mauvaises solutions. Dans
un bon algorithme par séparation et évaluation, seules les
solutions potentiellement bonnes sont donc énumérées [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
L‘algorithme de branch and bound se résume par :
p  ( p0 , Bi ( p0 ))
T ant que p   faire
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Algorithm 2</title>
      <sec id="sec-3-1">
        <title>Algorithme Branch and baund</title>
        <p>Initialisation : Best_Sol =∞; Bi ( p0 ) : f ( p0 ) ;
Sélection: sélectionner un noeud p de P :
p := p /{ p };
Pour i=1 …k faire</p>
        <p>Evaluation Bi ( pi ) : f ( pi )</p>
        <p>Si ( Bi ( pi )  f (x) ), x réalisable et ( f (x) &lt;
Best_Sol) alors</p>
        <p>Best_Sol:=</p>
        <p>f (x)</p>
        <p>Solution := x ;
Sinon</p>
        <p>Si Bi ( pi ) &gt; Best_Sol alors</p>
        <p>Elaguer pi ;
Sinon</p>
        <p>Séparation: Décomposer p en
p1, p2 ,..., pk ;</p>
        <p>p ( pi , Bi ( pi ))</p>
        <p>Fin Si</p>
        <p>Fin Si</p>
        <p>Fin Pour</p>
      </sec>
      <sec id="sec-3-2">
        <title>3) Description de notre approche :</title>
        <p>Dans le flot de conception, l‘étape de placement et
ordonnancement est directement liée à l‘implémentation de
l‘application sur une architecture spécialisée. Les entrées de
cette phase sont :



</p>
      </sec>
      <sec id="sec-3-3">
        <title>Un modèle d‘application Un modèle d‘architecture cible Des contraintes de performance et d‘énergie, Des fonctions objectives à optimiser.</title>
        <p>La sortie de cette phase est une affectation des différentes
tâches et communications aux ressources physiques, selon un
ordonnancement d‘exécution des différentes tâches sur ces
ressources.</p>
        <p>AG
B&amp;B</p>
      </sec>
      <sec id="sec-3-4">
        <title>Contrainte</title>
        <p>Meilleur placement</p>
        <p>Des taches sur
l‘architecture NOC</p>
        <p>IV. EXPERIMENTATION ET ANALYSE DES RESULTAT
Pour le développement de notre approche, on a opté pour le
langage de programmation JAVA, et toutes les expériences
ont été réalisées sur un Pentium double core 2.04 GHZ sous
Windows 7.</p>
        <p>Après l'exécution de notre approche hybridée (GA et B &amp; B)
en utilisant les propriétés et les paramètres de base indiqués
dans le tableau 1, les résultats obtenus sont comme suit:</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Algorithme</title>
      <sec id="sec-4-1">
        <title>A. Le modèle hybride proposé :</title>
        <p>Le modèle hybride proposé est illustré par la figure 5 :
Charger à partir disque (Fichier XML)
Graphe d‘application</p>
        <p>Graphe d‘architecture
Début</p>
        <p>Valider
Introduction des paramètres</p>
        <p>+
Lancement des calculs :</p>
        <p>AG ,B&amp;B et Dijkstra</p>
        <p>Affichage des</p>
        <p>résultats
(Front Pareto)</p>
        <p>Fin</p>
        <p>Dans cet article nous avons présenté notre approche, basée
sur l‘algorithme Génétique et algorithme de Branch and
Bound. Ces derniers sont hybridés avec l‘algorithme de plus
court chemin dijkstra multi objectifs afin de résoudre le
problème de placement et d‘ordonnancement d‘une
application hiérarchique sur une architecture MPSoC.
Nous considérons pour le moment que notre solution est très
efficace parce qu‘on a utilisé une meilleur méta heuristique et
exact pour traiter les deux types de taches régulières et
irrégulières et assurer le parallélisme de tache et de donnés
(GILR : Globally Irregular Locally Regular).</p>
        <p>En attendant des expérimentations et simulations plus
poussées, nous considérons que notre solution est très efficace
parce qu‘on a utilisé une meilleur méta heuristique et un
algorithme exact pour traiter les deux types de tâches.</p>
        <sec id="sec-4-1-1">
          <title>REFERENCES</title>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>Y. A.</given-names>
            <surname>Laribi</surname>
          </string-name>
          ,
          <article-title>― Environnement de mapping pour la Conception des réseaux sur puce(NoCs),‖ pour obtenir le titre de Magistère. L'école nationale d'informatique ESI, Algérie</article-title>
          ,
          <year>Juillet 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>R.A.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          ,
          <article-title>― Optimisation multicritère pour le placement d'applications intensives sur système sur puce (SoC),‖ pour obtenir le titre de Master</article-title>
          . l'Université de Lille Mention : Informatique.
          <source>Juin</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>B.</given-names>
            <surname>Abou-El Hassen</surname>
          </string-name>
          , ― Ordonnancement
          <string-name>
            <surname>Hiérarchique Multi - Objectif D'Application Embarquées</surname>
            <given-names>Intensives</given-names>
          </string-name>
          ,‖ thèse pour l'obtention
          <string-name>
            <surname>du Diplôme De Doctorat D'Etat</surname>
          </string-name>
          , université d'Oran , Algérie, décembre
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>B.</given-names>
            <surname>Henri</surname>
          </string-name>
          et H.
          <string-name>
            <surname>Matthew</surname>
          </string-name>
          ,
          <article-title>― Approaches for integrating task and data parallelism</article-title>
          ,
          <source>‖ IEEE Concurrency</source>
          ,
          <volume>6</volume>
          (
          <issue>3</issue>
          ):
          <fpage>74</fpage>
          -
          <lpage>84</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>A..</given-names>
            <surname>Benyamina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Beldjilali</surname>
          </string-name>
          et
          <string-name>
            <given-names>S.</given-names>
            <surname>Eltar</surname>
          </string-name>
          ,
          <article-title>― Time Applications on NoC Architecture with Hybrid Multi-objective PSO Algorithm</article-title>
          ,‖ COSI'
          <year>2010</year>
          . Ouaragla, Algerie, Avril,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Liefooghe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Matthieu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Jourdan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>El-Ghazali</surname>
          </string-name>
          ,
          <article-title>― Paradiseo-moeo : A framework for evolutionary multiobjective optimization,‖ In Evolutionary Multi-criterion Optimization (EMO</article-title>
          <year>2007</year>
          ), vol
          <volume>4403</volume>
          of Lecture Notes in Computer Science, pp.
          <fpage>386</fpage>
          -
          <lpage>400</lpage>
          , Matsushima, Japan: Springer-Verlag,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abdelkader</surname>
          </string-name>
          ,
          <article-title>― Ordonnancement multi objectif d'application intensif sur une architecture régulières,‖ pour obtenir le diplôme de magistère</article-title>
          , université d'Oran, Algérie, février
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>T.</given-names>
            <surname>El-Ghazali</surname>
          </string-name>
          , ― Metaheuristics : From Design to Implementation,‖
          <article-title>Wiley-Blackwell (an imprint of</article-title>
          John Wiley sons Ltd ), juillet
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>ashish</surname>
          </string-name>
          , ― Allocation, Assignation, et Ordonnancement pour
          <article-title>les systèmes sur puce multiprocesseurs,‖ thèse pour l'obtention du</article-title>
          <string-name>
            <surname>Diplôme De Doctorat D'Etat</surname>
          </string-name>
          , université de Lille , France, décembre
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mehran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Saeidi</surname>
          </string-name>
          ,
          <article-title>A. khademzadeh, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Afzali-khusha</surname>
          </string-name>
          ,
          <article-title>―Spiral : A heuristic mapping algorithm for network on chip</article-title>
          ,
          <source>‖ IEICE Electronics Express</source>
          ,
          <volume>4</volume>
          (
          <issue>15</issue>
          ) :
          <fpage>478</fpage>
          -
          <lpage>484</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>