• Aucun résultat trouvé

CHAPITRE 8 EXPLORATION ARCHITECTURALE

8.3 Fonctions objectives

8.4.3 Algorithme glouton

Un algorithme glouton construit une solution en une s´erie d’´etapes. `A chaque ´etape, l’algorithme glouton effectue le choix qui est localement optimal pour cette ´etape sans revenir sur les choix faits lors des ´etapes pr´ec´edentes. ´Etant donn´e que les choix faits aux diff´erentes ´etapes ne sont g´en´eralement pas ind´ependants entre eux, cette s´erie de choix localement optimaux produit rarement l’optimum global. N´eanmoins, un algorithme glouton permet de g´en´erer rapidement une solution qui est meilleure en moyenne qu’une solution g´en´er´ee al´eatoirement. Cette solution gloutonne peut ensuite ˆetre utilis´ee comme solution initiale dans un algorithme it´eratif plus ´elabor´e, telle que la recherche locale ou les algorithmes g´en´etiques.

Cette section pr´esente un algorithme glouton pour les probl`emes d’exploration architec- turale de ce chapitre. Soit une application avec des ensembles M de modules, S de tˆaches logicielles et H de composants mat´eriels. L’algorithme glouton construit une architecture en y ajoutant un par un chacun des composants, tˆaches et modules de l’application. Pour des raisons de simplification, l’algorithme glouton ne consid`ere que les topologies compos´ees d’un seul bus partag´e.

L’ordre dans lequel les composants, tˆaches et modules sont assign´es est d´etermin´e `a l’aide des m´etriques pr´esent´ees au tableau 8.1. Ce tableau introduit notamment la m´etrique d’affi- nit´e mat´erielle : plus un module a une acc´el´eration ´elev´ee lorsqu’on le d´eplace du logiciel vers le mat´eriel et moins il consomme de ressources mat´erielles, plus son affinit´e envers une impl´e- mentation mat´erielle est grande et, `a l’oppos´e, plus son affinit´e envers une impl´ementation logicielle est faible.

Les valeurs des m´etriques tsw(x), thw(x) et rj(x) sont obtenues par la caract´erisation et

l’estimation pr´esent´ees au chapitre 7. Les m´etriques de quantit´e de ressources mat´erielles sont combin´ees selon des coefficients de poids en une m´etrique globale de quantit´e de ressources mat´erielles tel que d´ecrit `a la section 8.2.

´

Etant donn´e que l’heuristique gloutonne doit ´evaluer des impl´ementations partiellement construites, on adapte les m´ethodes d’estimation d´efinies au chapitre 7. Ainsi, on consid`ere comme nul le temps d’ex´ecution, les temps de communication et la quantit´e de ressources mat´erielles de tout composant, tˆache ou module qui n’a pas encore ´et´e assign´e par l’algorithme glouton. L’estimation des m´etriques V (a), T (a) et Rj(a) est donc ajust´ee en cons´equence. On

utilise pour chaque probl`eme la mˆeme fonction objective que celle d´efinie pour le probl`eme `a la section 8.3.

Le fonctionnement g´en´eral de l’algorithme glouton pour l’exploration architecturale est pr´esent´e `a la figure 8.3. L’initialisation de la solution consiste d’abord `a instancier une archi- tecture vide, `a allouer un bus et `a y assigner l’ensemble H des composants mat´eriels. Ensuite,

Tableau 8.1 D´efinitions des m´etriques appliqu´ees aux modules

Nom Description

tsw(x) Le temps total que prend l’ensemble des calculs r´ealis´es

par la tˆache logicielle x ou le module x lorsque celui-ci se trouve en logiciel.

thw(x) Le temps total que prend l’ensemble des calculs r´ealis´es

par le composant mat´eriel x ou le module x lorsque celui- ci se trouve en mat´eriel.

rj(x) La quantit´e de ressources mat´erielles de type j utilis´ees

par le composant x ou le module x lorsque celui-ci se trouve en mat´eriel.

r(x) = ∑

j

αjrj(x) Une ´evaluation de l’ensemble des ressources mat´erielles

utilis´ees par le composant ou module x, pond´er´ee par les coefficients αj.

hw(m) = tsw(m) − thw(m)

r(m) Le degr´e d’affinit´e du module m envers une impl´ementa-tion mat´erielle.

l’initialisation diff`ere selon que l’algorithme soit configur´e pour avoir un biais mat´eriel ou un biais logiciel. L’ensemble M est tri´e par ordre d´ecroissant des affinit´es mat´erielles (pour consi- d´erer d’abord les modules avec les plus fortes affinit´es hw) si l’algorithme a un biais mat´eriel et par ordre croissant si il a un biais logiciel. De plus, si l’algorithme glouton a un biais logiciel, alors le module de M avec le plus petit hw est retir´e de M pour l’ajouter `a S et donc forcer son impl´ementation en logiciel. Sans cette mesure, l’algorithme glouton tendrait `a ne jamais allouer un premier processeur `a moins que la quantit´e de ressources mat´erielles n´ecessaires `a l’impl´ementation mat´erielle d’un seul module soit sup´erieure `a celles n´ecessaires au processeur. L’initialisation se termine en triant l’ensemble S par ordre croissant de leur tsw.

L’algorithme glouton ajoute ensuite successivement chaque tˆache s ∈ S `a la solution. Il peut ajouter une tˆache s donn´ee soit en l’ajoutant `a un processeur d´ej`a allou´e, soit en allouant un nouveau processeur. Toutes ces possibilit´es sont ´evalu´ees et tri´ees selon la fonction objective. De la mˆeme mani`ere, l’algorithme ajoute `a la solution chacun des modules n ∈ N soit en ajoutant son impl´ementation mat´erielle au bus, soit en ajoutant son impl´ementation logicielle `a un processeur d´ej`a allou´e ou `a un processeur simultan´ement allou´e. La construction de la solution est termin´ee alors que tous les ´el´ements de H, S et M ont ´et´e assign´es.

® ­ © ª D´ebut ? Initialisation de la solution ? ¡¡ ¡ @ @ @ ¡ ¡ ¡ @ @ @ S vide ? N O ? ¡¡ ¡ @ @ @ ¡ ¡ ¡ @ @ @ M vide ? N O ? Retourner la solution ? ® ­ © ª Fin

- ´el´ement m de MRetirer prochain

selon affinit´e

-fa¸con d’ajouter mChoisir meilleure ` a la solution - Ajouter m ` a la solution ¾

- Retirer prochain´el´ement s de S

selon temps ex´ec.

- Choisir meilleurefa¸con d’ajouter s

` a la solution - Ajouter s ` a la solution ¾

Figure 8.3 Fonctionnement g´en´eral de l’algorithme glouton