• Aucun résultat trouvé

CHAPITRE 2 REVUE DE LITT´ ERATURE

2.5 Algorithmes d’exploration architecturale

2.5.2 Exploration architecturale avec plusieurs processeurs

Les algorithmes pr´esent´es dans cette section assignent les tˆaches de l’application `a une architecture qui comprend plusieurs processeurs et possiblement des acc´el´erateurs mat´eriels. On distingue trois cat´egories d’algorithmes. Dans la premi`ere, le nombre de processeurs et la topologie de communication sont fixes. La deuxi`eme cat´egorie d´ecide du nombre de pro- cesseurs `a allouer, mais n’explore pas la topologie de communication. La troisi`eme cat´egorie explore `a la fois l’allocation des processeurs et la topologie de communication. On d´esigne les algorithmes des deux derni`eres cat´egories comme des algorithmes de synth`ese d’architecture, ´etant donn´e qu’ils n’assignent pas seulement des tˆaches sur une architecture donn´ee, mais

qu’ils d´ecident ´egalement de cette architecture. Notre m´ethode pr´esent´ee au chapitre 8 se classe dans la troisi`eme cat´egorie.

2.5.2.1 Nombre fixe de processeurs

Plusieurs algorithmes ont ´et´e propos´es pour minimiser le temps d’ex´ecution d’un ordon- nancement statique d’un TPG sur un nombre fixe de processeurs (Kwok et Ahmad, 1999). Dans le contexte des syst`emes embarqu´es, on s’int´eresse ´egalement `a l’impact de l’assigna- tion et de l’ordonnancement des tˆaches sur les ressources mat´erielles requises. Ainsi, (Orsila et al., 2007) pr´esente un algorithme de recuit simul´e et une adaptation de l’heuristique de Kernighan-Lin (Kernighan et Lin, 1970) pour optimiser le temps d’ex´ecution et la m´emoire requise lors de l’assignation des tˆaches d’un TPG `a une architecture compos´ee d’un nombre fixe de processeurs homog`enes et d’un bus partag´e. Ces algorithmes, qui sont utilis´es dans le cadre de la m´ethodologie de conception de syst`emes embarqu´es Koski (Kangas et al., 2006), ´evaluent les solutions propos´ees par un ordonnancement statique du TPG sur les processeurs et le bus partag´e. Il n’est cependant pas possible d’assigner une tˆache en mat´eriel.

D’autres algorithmes r´ealisent ´egalement un partitionnement logiciel/mat´eriel : chaque tˆache est assign´ee soit `a un des processeurs de l’architecture, soit en tant qu’acc´el´erateur mat´eriel. Ainsi, (Wang et al., 2006) pr´esente un algorithme hybride pour l’ordonnancement statique et l’assignation des tˆaches d’un TPG sur une architecture compos´ee d’un processeur PowerPC (IBM Microelectronics Division, 1998), d’un processeur DSP TMS320C25 (Texas Instruments Inc., 2010) et d’un FPGA. Cet algorithme commence par produire un ensemble de solutions via une optimisation par colonie de fourmis, puis raffine chacune d’entre elles par un recuit simul´e, selon des crit`eres de temps d’ex´ecution et de coˆut mat´eriel. Dans (Niemann et Marwedel, 1997), une formulation ILP est pr´esent´ee pour le probl`eme de l’ordonnance- ment statique et de l’assignation des tˆaches d’un TPG sur un ensemble fixe de processeurs, d’ASIC et de bus. Cet algorithme permet de trouver une solution optimale, mais sa com- plexit´e exponentielle rend difficile son application `a une architecture autre que celle utilis´ee pour un partitionnement logiciel/mat´eriel `a un processeur. SoCDAL (Ahn et al., 2008) utilise un algorithme ´evolutionniste d’inspiration quantique (Han et Kim, 2002) pour l’assignation des processus d’un graphe CSDF `a une architecture compos´ee d’un nombre fixe de proces- seurs ARM7, de DSP CEVA Teak (CEVA, Inc., 2004), d’acc´el´erateurs mat´eriels et d’un bus partag´e. Dans (Wild et al., 2003), un recuit simul´e ou une recherche tabou est utilis´ee pour assigner un TPG sur une architecture similaire. Ces algorithmes ont en commun qu’ils supposent qu’un ordonnancement statique de l’application est possible et qu’ils n´egligent l’implication du processeur dans les communications (Sinnen et al., 2006).

2.5.2.2 Exploration de l’allocation des processeurs

SOS (Prakash et Parker, 1992) est une formulation ILP d’un probl`eme de synth`ese d’ar- chitecture multi-processeurs h´et´erog`ene pour une application sp´ecifi´ee sous la forme d’un TPG. Un gabarit d’architecture sp´ecifie le nombre maximal de chaque type de processeurs et l’algorithme alloue un nombre variable de ces processeurs ayant chacun une m´emoire locale et un co-processeur pour la gestion des communications. Les tˆaches du TPG sont assign´ees et ordonnanc´ees statiquement sur l’architecture allou´ee. Un temps d’ex´ecution est assign´e `a chaque tˆache du TPG selon le processeur sur laquelle elle est assign´ee et un temps de com- munication est ´egalement associ´e aux communications entre processeurs. Un coˆut mat´eriel est associ´e `a chaque processeur allou´e de mˆeme qu’aux liens de communication allou´es entre les processeurs.

Bien que cet algorithme alloue ´egalement des liens de communications entre les proces- seurs, il ne r´ealise pas une exploration de la topologie de communication. En effet, pour une allocation de processeurs donn´ee et pour une assignation donn´ee des tˆaches aux processeurs, l’algorithme consid`ere qu’il existe une et une seule topologie de communication : celle obte- nue en allouant un lien de communication point `a point entre une paire de processeurs si et seulement si une tˆache assign´ee au premier processeur communique avec une tˆache assign´ee au deuxi`eme processeur.

Plusieurs heuristiques ont ´et´e propos´ees pour acc´el´erer la r´esolution de ce probl`eme, soit les algorithmes g´en´etiques (Dhodhi et al., 1995), les algorithmes `a ´evolution diff´erentielle (Rae et Parameswaran, 1998) et une heuristique de descente (Wolf, 1997). Dans (Prakash et Parker, 1994), une formulation ILP est propos´ee pour une variante de ce probl`eme dont la topologie de communication est un bus partag´e et qui tient compte de la quantit´e de m´emoire utilis´ee par le code des processeurs allou´es.

Dans (Erbas et al., 2006), des algorithmes g´en´etiques multi-objectifs sont utilis´es pour optimiser le temps d’ex´ecution, la puissance et le coˆut mat´eriel d’une architecture multi- processeurs impl´ementant un KPN. Les processus du KPN sont caract´eris´es par leur charge de calcul alors que les canaux sont caract´eris´es par leur charge de communication. Les pro- cessus sont assign´es aux processeurs alors que les canaux qui r´ealisent des communications inter-processeurs sont assign´es `a des m´emoires partag´ees. Le temps d’ex´ecution est ´evalu´e en additionnant les charges impos´ees aux processeurs par les diff´erents ´el´ements du KPN sans tenir compte de l’ordonnancement dynamique des processus (d´ependances de donn´ees, changements de contexte, etc.) L’algorithme prend en entr´ee un graphe d’architecture qui indique quels processeurs peuvent ˆetre allou´es et quels processeurs peuvent communiquer entre eux. Le coˆut mat´eriel est calcul´e selon les processeurs allou´es `a l’int´erieur de ce gabarit. Un autre algorithme g´en´etique multi-objectifs bas´e sur un gabarit d’architecture est propos´e

dans (Schlichter et al., 2006), qui assigne les tˆaches d’un TPG `a un graphe d’architecture et ´evalue leur temps d’ex´ecution par un ordonnancement statique. Une variante de cet algo- rithme est utilis´e par SystemCoDesigner (Keinert et al., 2009), alors que le temps d’ex´ecution de l’application, qui est constitu´ee d’un ensemble d’acteurs SysteMoC (Falk et al., 2006), est plutˆot ´evalu´e par une simulation TLM avec VPC (Streubuhr et al., 2009).

Ces algorithmes limitent le nombre de processeurs qui peuvent ˆetre allou´es `a moins que le gabarit d’architecture contienne au moins autant de processeurs que de tˆaches. Cela est probl´ematiques pour les formulations ILP ´etant donn´e que le nombre de variables et d’´equa- tions y est proportionnel `a la fois au nombre de tˆaches et processeurs (Prakash et Parker, 1992, 1994). Aussi, ces algorithmes ne supportent pas directement l’assignation de modules en mat´eriel. Pour ce faire, il faut plutˆot proc´eder indirectement, en d´efinissant pour chaque module un « processeur » sp´ecial repr´esentant l’impl´ementation mat´erielle du module et en sp´ecifiant que seul ce module peut ˆetre assign´e `a ce processeur. Cela est n´ecessaire pour s’assurer que ces modules mat´eriels puissent ˆetre ordonnanc´es en parall`ele. Cependant, cela augmente grandement le nombre de processeurs dans le gabarit d’architecture et le risque qu’une assignation donn´ee des tˆaches soit invalide. Cela est particuli`erement probl´ematique pour les algorithmes g´en´etiques pr´esent´es. En effet, les individus (qui repr´esentent chacun une allocation et assignation donn´ees) y sont repr´esent´es sous la forme d’un vecteur de bits sur lesquels s’appliquent des op´erateurs de croisement et de mutation. Ces op´erateurs sont aveugles (ils ne tiennent pas compte des sp´ecificit´es du probl`eme) et leur application peut donc produire une assignation invalide (Erbas et al., 2006; Schlichter et al., 2006). Il est alors n´ecessaire d’appliquer une proc´edure de r´eparation sur un tel individu, et ce possiblement sur plusieurs individus et sur plusieurs g´en´erations (ou it´erations) de l’algorithme. Cette r´epara- tion peut ˆetre complexe : dans (Schlichter et al., 2006; Keinert et al., 2009), elle implique de r´esoudre un probl`eme NP-complet de satisfiabilit´e bool´eenne (Garey et Johnson, 1979) dont le nombre de clauses est proportionnel au nombre de processeurs.

`

A l’inverse, notre formulation du probl`eme n’impose aucune borne explicite au nombre de processeurs et supporte directement l’assignation des modules au mat´eriel. Les op´erateurs (mouvements) d´efinis pour la recherche locale tiennent compte de la sp´ecificit´e du probl`eme et assurent que toutes les assignations produites sont correctes par construction. Il est ensuite ais´e d’ajouter une borne explicite, si n´ecessaire, au nombre de processeurs : il suffit d’interdire les mouvements qui feraient d´epasser cette borne. Nous avons impl´ement´e une telle borne, qui est optionnelle, pour tous nos algorithmes. Les mˆemes principes s’appliquent directement `a l’exploration des topologies de communication sur plusieurs bus.

2.5.2.3 Allocation des processeurs et topologie de communications

Divers algorithmes combinent l’exploration de l’allocation des processeurs et de la to- pologie de communication. Ainsi, (Le Beux et al., 2009) pr´esente un algorithme g´en´etique multi-objectifs pour assigner les tˆaches d’un TPG `a un nombre variable de processeurs ho- mog`enes reli´es entre eux par un r´eseau sur puce (NoC : Network on Chip). Cette exploration permet de choisir parmi trois topologies r´eguli`eres pour le NoC, soit une topologie cross- bar, maill´ee (mesh) 2D ou en anneau. Notre approche explore plutˆot des topologies de bus hi´erarchiques qui peuvent ˆetre irr´eguli`eres et relier des acc´el´erateurs mat´eriels en plus des processeurs.

(Blickle et al., 1998) assigne les noeuds et les arcs d’un TPG `a un graphe d’architecture dont les noeuds repr´esentent des processeurs ou des liens de communication et dont les arcs indiquent quels processeurs peuvent utiliser quels liens de communication. Le gabarit d’ar- chitecture peut contenir des liens point-`a-point et des bus partag´es, mais ne contient pas de ponts entre les bus. Cette m´ethode ne cible donc pas les topologies de bus hi´erarchiques sur puce. Un algorithme g´en´etique multi-objectifs est utilis´e pour explorer les diff´erentes solu- tions possibles, dont le temps d’ex´ecution est ´evalu´e par un ordonnancement statique. Cette approche partage les limites des algorithmes g´en´etiques pr´esent´es `a la section pr´ec´edente. En particulier, l’application des op´erateurs g´en´etiques peut rendre un individu invalide et sa r´eparation est un probl`eme NP-complet.

L’algorithme g´en´etique MOGAC (Dick et Jha, 1998) s’attaque `a ce probl`eme en d´efinis- sant des grappes de solutions qui ont exactement la mˆeme allocation de processeurs et la mˆeme topologie de liens de communication. Les op´erateurs g´en´etiques sont principalement appliqu´es `a l’int´erieur d’une mˆeme grappe pour ´eviter de modifier l’allocation ou la topologie et de cr´eer des individus structurellement incoh´erents. L’allocation et la topologie sont ex- plor´ees lors de l’application occasionnelle des op´erateurs g´en´etique aux grappes elles-mˆemes. Chaque individu voit alors ses informations d’assignation al´eatoirement r´einitialis´ees pour sa nouvelle allocation et topologie. L’exploration de l’allocation et de l’assignation se font ainsi en deux phases it´eratives alors qu’elle se fait en une phase combin´ee dans notre m´ethode. Dans (Deniziak et Gorski, 2008), la programmation g´en´etique est appliqu´ee `a ce probl`eme. Dans cet algorithme, un individu ne repr´esente pas une allocation et assignation particuli`ere, mais plutˆot un algorithme glouton, compos´e `a partir de r`egles ´el´ementaires, qui permet de construire une telle allocation et assignation en une phase combin´ee. Les op´erateurs g´en´e- tiques modifient les r`egles utilis´ees par ces algorithmes gloutons, mais rien ne garantit que l’ensemble de ces r`egles permet de g´en´erer toutes les allocations, topologies et assignations qui font partie de l’espace de recherche. Ces m´ethodes consid`erent ´egalement les topologies compos´ees de liens point-`a-point et de bus partag´es, mais non les topologies de bus hi´erar-

chiques.

(Madsen et al., 2006) pr´esente un algorithme g´en´etique multi-objectifs pour l’explora- tion de l’allocation des processeurs et des topologies de bus hi´erarchiques pour un TPG. Ce mod`ele d’architecture consid`ere donc les ponts. De plus, les op´erateurs g´en´etiques utilis´es ne sont pas aveugles et tiennent compte des sp´ecificit´es du probl`eme. Ainsi, l’op´erateur de croisement s’assure de conserver la coh´erence entre l’allocation et l’assignation. Les op´era- teurs de mutation permettent de modifier l’assignation d’une tˆache, de mˆeme que d’ajouter ou de retirer un processeur tout en modifiant l’assignation des tˆaches en cons´equence. Ces op´erateurs de mutation sont semblables aux mouvements de recherche locale de notre m´e- thode, mais celle-ci inclut ´egalement des op´erateurs pour ajouter ou retirer des bus de mˆeme que pour d´eplacer des processeurs d’un bus `a un autre. L’exploration de la topologie dans (Madsen et al., 2006) doit donc se faire `a l’int´erieur d’un gabarit. Cette m´ethode mod´elise les acc´el´erateurs mat´eriels simplement comme un processeur avec une fr´equence plus ´elev´ee alors que la nˆotre consid`ere comme distinctes les impl´ementations mat´erielles des diff´erentes tˆaches. Notre m´ethode tient ainsi compte du fait que toutes les tˆaches ne subissent pas une acc´el´eration uniforme en passant du logiciel au mat´eriel.