17

Click here to load reader

Architecture d'ordinateur - Partitionment et Ordonnancement - rapport

Embed Size (px)

Citation preview

Page 1: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

GROUP: 4SIQ3

Assem Chelli

Walid Benchaitq

Realisé Par:

Page 2: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

1

Benchaita Walid || Chelli Assem

[email protected] || [email protected]

INI OUED SMAR, 16309, EL HARRACH ALGER ALGÉRIE

Résumé :La plupart des systèmes embarqués étant aujourd’hui une mixture de matériel (ASIC, FPGA…) et de logiciel (processeurs généraux, processeurs spécialisés…). La méthode la plus appropriée pour la réalisation de ce type de système est la conception conjointe HW/SW communément appelé Co-design. Cette méthodologie de développement se caractérise par plusieurs étapes l’une d’elle est le « partitionnement logiciel/matériel ». Nous allons présenter ici une des méthodes heuristiques qui est « branch and bound » pour résoudre ce problème complexe.

Mots-clés : heuristique, branch and bound, A*, partitionnement logiciel/matériel, ordonnancement, Co-design, système embarqué, méthode exacte.

Abstract:Most of embedded systems are today a mixture of hardware (ASIC, FPGA…) and software (general purpose processors, dedicated processors…). The most adequate method for achieving this type of system is the conjoint HW/SW conception commonly called co-design. This development methodology is characterized by multiple steps, and one of them is the "software/hardware partitioning”. We will present here the « branch and bound » method for solving this problem.

Keywords: branch and bound, software/hardware partitioning, scheduling, co-design, embedded systems.

Page 3: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

2

I. Index

I. IndexII. IntroductionIII. Présentation du problème et des méthodes

IV. Présentation du problème de partitionnement et de l’ordonnancement

A. Partitionnement :

B. L’ordonnancement :

C. branch and bound

V. Travaux antérieursVI. Travail réalisé

A. Modélisation du problème :

a) Codage des solutions :

b) Travail à faire :

c) La méthode branch and bound :

VII. Test et résultatsVIII. ConclusionIX. Bibliographie

Page 4: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

3

II. Introduction

La conception conjointe logiciel/matériel appelé usuellement Co-design permet d’atteindre les objectifs visés par les concepteurs qui sont la minimisation du coût de production, la minimisation du temps et du coût de développement et l'obtention d'un compromis coût/performance acceptable. Pour suivre cette démarche le concepteur doit passer par plusieurs étapes ; et le « partitionnement logiciel/matériel » est une étape complexe car cette dernière est un problème NP complet et a un impact direct sur les objectifs visés. Le « partitionnement logiciel/matériel » (PLM) est un problème d’optimisation monocritère et qui consiste à attribuer à chacune des sous tâches d’un programme (entité) un processeur sur lequel ce fera l’exécution.

La première solution logique qui nous viens à l’esprit est le parcoure de toute les combinaisons possibles, cela nous permet à coup sûr d’atteindre la solution optimale mais dans certains cas cette approche s’avère gourmande en temps d’exécution et peut prendre des années de calculs. C’est pour cela qu’une approche d’optimisation semble primordiale. Donc l’utilisation d’heuristiques (recuit simulé, algorithme génétique, recherche tabou…) s’emble être une solution raisonnable.

Dans notre TP nous allons présenter une méthode d’optimisation qui donne de bon résultat surtout qu’on la fonction du coût est bien définit ; mais l’inconvénient de cette méta heuristique *1 réside dans le choix des paramètres

Page 5: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

4

III. Présentation du problème et des méthodes :

Comme nous l’avons dit précédemment le PLM est un problème NP complet, l’utilisation d’une méthode exacte semble donc déraisonnable surtout que dans la pratique les problèmes rencontrés sont assez grands. (Exemple : pour 64 entités sur 2 processeurs temps nécessaire pour une méthode exacte sur un processeur de 1 GHZ 292 ans car 2^64= 18446744073709551616 cas possibles) [1]. Et il existe d’autres solutions (méthodes polynomiales d’approximations…) qui sont trop compliqués à implémenter pour ce genre de problème [2]. Les solutions adéquates pour ce type de problème sont des heuristiques inspirées de la physique (BAB…) ou de la biologie (l’algorithme génétique, colonies de fourmis…).

Les algorithmes issus de la biologie ont la caractéristique de prendre en compte que des états de bonne qualité (les individus les plus proche du « super-individu ») [3], par contre ceux inspirés de la physique acceptent des états de moindre qualité (avec une probabilité faible) dans le but d’atteindre des solutions meilleurs [4]

Nous utiliserons le branch and bound qui a pour avantage de donne la solution optimal sans pour au ton parcourir tout les états dans le but de trouver une solution.

En plus de cela nous aurons à implémenter la méthode exacte qui peut s’avérer fort utile dans des problèmes de petites tailles et qui nous servira aussi de comparatif à notre heuristique sur le plan complexité. Nous démontrerons dès lors la nécessité d’utiliser les méthodes d’optimisation en générale et le branch and bound en particulier.

Nous apportons ci-dessous plus de détails sur les principes du branch and bound.

Page 6: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

5

IV. Présentation du problème de partitionnement et de l’ordonnancement :

A. Partitionnement :Le partitionnement consiste à affecter chacune des entités (partie du

programme) à un processeur sur lequel se fera l’exécution.

Dans la littérature, on trouve globalement quatre grandes classes d’algorithmes [9] :

algorithmes de liste,

algorithmes de regroupement,

algorithmes de recuit simule,

algorithmes génétiques.

B. L’ordonnancement :On désigne par ordonnancement, le fait d’allouer des ressources et du temps

aux sous tâches (entités) sur un processeur donne, de telle manière que certaines conditions soient remplies. [9]

C. branch and bound :La méthode de branch and bound (procédure par évaluation et séparation

progressive) consiste à énumérer ces solutions d’une manière intelligente en ce sens que, en utilisant certaines propriétés du problème en question, cette technique arrive à éliminer des solutions partielles qui ne mènent pas à la solution que l’on recherche. De ce fait, on arrive souvent à obtenir la solution recherchée en des temps raisonnables. Bien entendu, dans le pire cas, on retombe toujours sur l’élimination explicite de toutes les solutions du problème

(Méthode exacte).

Page 7: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

6d) La fonction du cout :

Cette méthode se dote d’une fonction qui permet de mettre une borne sur certaines solutions pour soit les exclure soit les maintenir comme des solutions potentielles.

Bien entendu, la performance d’une méthode de branch and bound dépend, entre autres, de la qualité de cette fonction (de sa capacité d’exclure des solutions partielles tôt).

Page 8: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

7

V. Travaux antérieurs

L’application des variant du branch and bound a était envisage mais des raisons considérant par exemple, le branch and bound avec estimation certes le gain en temps de recherche de solution et considérable mais cette méthode ne permet pas d’obtenir le résultat exact mais un résultat proche de l’optimum.

Une approche qui consiste à traiter le problème d’ordonnancement dynamique multi contextes en implémentant un Ordonnanceur pour chaque unité en prenant en compte certaines priorités.

Une étude récente Utilisation du backtrack intelligent dans un

Branch-and-bound Application au problème d’Open-Shop.

Il y a aussi l’étude de qui est résolue aussi à l’aide de programmation dynamique.

Cette dernière solution étant gourmande en mémoire (car elle fait évoluer plusieurs sous solutions en même temps).

Page 9: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

8

VI. Travail réalisé

L’objectif visé par notre travail est la réalisation d’un outil capable de fournir une répartition logiciel/software proche de l’optimum globale. Ce qui permettra au concepteur un gain en temps et en coût de conception assez conséquent.

Mais cette tâche n’est guère facile car on est face à un problème qui contient au moins un sous problème NP-difficile.

Dans notre cas nous aurons à affecter E entités vers P processeurs. La fonction objective tiendra compte que des temps d’exécution, et l’espace occupé nous servira comme critère de faisabilité de la solution.

La fonction de coût se calcul selon deux méthodes [1] :

1) f (t) = (Tseq + Tpar) / 2.2) Le temps obtenu par ordonnancement.

C’est le coût exact de la solution en tenant compte des dépendances de données.

Espace : L’espace calculé est la somme des espaces de toutes les entités affectées à chaque processeur :

NbP: Nombre de Processeurs

NbEPi: Nombre d’entités affectées au processeur Pi

Ej: espace occupé par l’entité Ej

NbP

i

NbEPi

j

EjE1 1

Page 10: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

9

Tseq [13]:

Tpar [13]:

Avec i variant de 1 à NbP

REMARQUE : pour le calcul du Tpar dans le cas d’un processeur parallèle ne sera pas

)(1

NbEPi

j

Ej mais max des Ei.

NbE

i

TiTseq1

)(1

NbEPi

j

EjMaxTpar

Page 11: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

10A. Modélisation du problème :

Nous considérerons notre problème comme un problème de minimisation du coût du matériel tout en réalisant des contraintes de performances.

Notre travail consistera tout simplement à trouver un support d’exécution pour chacune des sous tâches du programme parmi une multitude de composants programmables (RISC, CISC, DSP…) ou bien dédiés (ASIC, FPGA…). A signaler que ces composants peuvent être dupliqué (allouer) autant de fois et peuvent être séquentielou parallèle.

a) Codage des solutions : La solution sera représentée comme un vecteur à NBE (nombre d’entité)

éléments à chaque élément lui sera affecté une valeur (0<val<NBP)

Cette valeur représente le processeur alloué pour l’entité X, le numéro de l’entité représente la position dans le vecteur.

E0|E1|E2|……..|Ei|……|En|

(Px,Py,Ps, …….Px,…….Ps) avec x,y,s représente des numéros de processeurs <NBP et >=0

EXEMPLE :

pour NBE=5 et NBP=3

E0,E1,E2,E3,E4

SOL=(1 ,2 ,0 ,2 , 1)

Donc : l’entité E0 sera affectée au processeur P1.

L’entité E1 sera affectée au processeur P2.

L’entité E2 sera affectée au processeur P0.

L’entité E3 sera affectée au processeur P2.

L’entité E4 sera affectée au processeur P1.

Page 12: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

11b) Travail à faire :1) Lecture du fichier qui contient les différentes matrices. Pour cela nous avons

eu recourt aux expressions régulière avec l’outil LEX générateur. 2) Programmer la méthode exacte dans le but d’effectuer une recherche

exhaustive (branch and bound).

c) La méthode branch and bound :La méthode exacte consiste à explorer tout l’espace de solution possible et à

choisir la solution la moins coûteuse. (Soit celle dans la fonction de coût est minimale (pour une minimisation).

Donc on procède à une génération de toutes les combinaisons possibles dans une file

Puis on explorer ces combinaisons avec Branch and Bound

C’est un type de parcours en largeur ou on garde dans

Figure-1[5]

Page 13: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

12

CreerFile( F ); /* une file de priorité ordonne par f */

Z := {Racine}; /* un chemin formé par un seul sommet */

Enfiler( F , <Z,f(Racine)> );

Trouv := FAUX;

TantQue Non FileVide(F) et Non Trouv

Defiler( F , Z );

Soit x le dernier sommet du chemin Z;

Si x <> BUT

Soient y1,...yk les succ de x qui n’appartiennent pas à Z;

Pour i:=1,k

T := Z + {yi} /* former de nouveaux chemins */

Enfiler(F,<T,f(yi)>); /* et les enfiler */

FPour

Etiq: /* pour le moment rien à faire ici */

Sinon

Trouv := VRAI

Fsi

FTQ

Alogorithme General B/B

Page 14: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

13

VII. Tests et résultats

Pour les tests nous avons réalisé un générateur aléatoire de benchmarks Environnement::Environnement(int nbeMax, int nbpMax, int nbeMin = 2, int nbpMin = 1);

Il suffit juste de déclarer une variable de type Environnement :

Environnement env(100, 50, 50, 5); //env aléatoire avec au plus 100entite et 50 procs et au moins 50 ent et 5 proc

Nous allons prendre pour nos tests NBP=2 et NBE=4 ;

E4

P2

//---1.Temps d'exécution des entités sur les différents processeurs ---

60 50 125 70 #

1420 1407 300 2123#

//---3. Espaces occupés par les entités sur les différents processeurs ---

300 585 200 370 #

250 700 300 450 #

//-----5.Graphe des dépendances de données

0 0 0 0 #

Page 15: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

141 0 0 0 #

1 0 0 0 #

0 0 1 0 #

//---Espaces disponible sur les différents processeurs---

685 980 #

//---- Type des processeurs

1 0 #

%

le BRANCH AND BOUND donne assez souvent de meilleur résultat comparer au recule simule.

Page 16: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

15

VIII. Conclusion

Durant notre étude nous avons montré que le problème dit PLM est loin d’être un problème facile car il n’est pas évident de trouver une méthode générale à ce problème. Nous avons essayé de le résoudre à l’aide d’une heuristique et cela en essayant de trouver une bonne fonction de coût ce qui n’est pas le cas de la plupart des travaux existants. Mais reste encore la prise en compte de contraintes qui semple être à l’heure d’aujourd’hui majeurs telle que les temps de communication et que nous avons ignoré dans notre étude. Des améliorations peuvent être apportées à la génération méthode « branch and bound » en utilisant la programmation dynamique.

Page 17: Architecture d'ordinateur  - Partitionment et Ordonnancement - rapport

Partitionnement logiciel/matériel avec méthode heuristique branch and bound 4SIQ3-Avril 2009

16

IX. Bibliographie

Transparent- M.koudil -Chapitre 5 : Ordonnancement et Partitionnement

Support de cour -MCCP -Mr Zegour « http://www. membres.lycos.fr/zegour »

L’article intitulé :"heuristique", écrit par Khaled hidouci.

Méthodes d’optimisation avancées « E-G Talbi », article, p21.

Rapport TP archi réalisé par MOUHAMED Hafid & AKROUR RIAD 4SiQ3

Azmoodeh, M. (1988): Abstract data types and algorithms, McMillan.

Sequencing and scheduling, Ellis Horwood Ltd., Chichester, French, S. (1982)

Levitin A. (2003): Introduction to the design and analysis of algorithms, Addison Wesley..

L’article intitulé « Utilisation du backtrack intelligent dans un branch-and-bound » écrit par « Narendra Jussien et Christelle Guèret »

l'article intitulé « Utilisation du backtrack intelligent dans un branch- and-bound » écrit par « Narendra Jussien et Christelle Guèret »

Ecole des Mines de Nantes

4rue Alfred Kastler –BP20722

F-44300Nantes Cedex 03– France