• Aucun résultat trouvé

4.4 Implantation des squelettes et mod`eles de performances

4.4.4 Cas du squelette ITERMEM

L’implantation du squelette ITERMEM n´ecessite seulement l’utilisation

d’un tampon m´emoire dans lequel sont stock´es les r´esultats de l’it´eration

i−1 pour ˆetre disponibles `a l’it´eration i (cf. paragraphe 2.4.5).

De fait, le mod`ele analytique de performances associ´e au squelette

ITER-MEMpeut s’´ecrire sous la forme suivante :

T

IT ERM EM

=T

Compute

+T

Copy

(4.8)

avec

• T

Compute

est le temps d’ex´ecution de la fonction de traitement pass´ee en

argument du squelette ITERMEM (cette fonction peut ˆetre soit une

fonction s´equentielle de traitement, soit une fonction complexe faisant

appel `a d’autres squelettes),

• T

Copy

est le temps pris pour effectuer la copie du r´esultat dans le tampon

m´emoire.

4.5 Conclusion

Dans ce chapitre, nous avons pr´esent´e l’outil de d´eveloppement SKiPPER,

environnement de programmation parall`ele d´edi´e au prototypage rapide

d’applications de TI `a fortes contraintes temporelles.

Nous avons successivement d´ecrit les diff´erents modules composant

l’outil `a savoir le compilateur fonctionnel Dromadaire effectuant la phase

d’expansion des squelettes, SynDEx r´ealisant l’ad´equation

Algorithme-Architecture et enfin la g´en´eration de code cible tirant parti des sp´ecificit´es

architecturales de la plate-forme Transvision.

Par la suite, pour chacun des squelettes de parall´elisation, nous avons

´etudi´e pr´ecis´ement l’implantation r´esultante sur un anneau de processeurs

ce qui nous a permis de formaliser leur comportement sous la forme d’un

mod`ele de performance effectuant une estimation pr´edictive de la latence de

chaque squelette.

Le chapitre 3 consacr´e `a la programmation fonctionnelle a mis en avant

certains avantages — facilit´e de programmation, facilit´e de compr´ehension et

ind´ependance vis `a vis de l’architecture — de notre approche de prototypage

pr´esent´e dans ce chapitre, permet de r´epondre `a d’autres exigences requises

par les mod`eles efficaces de programmation parall`ele :

➟ D´eveloppement d’outils d´edi´es : De la phase de sp´ecification

fonctionnelle des applications jusqu’`a la g´en´eration et la

compila-tion du code cible, SKiPPER g`ere automatiquement les diff´erentes

phases transformant la sp´ecification minimale utilisateur en un code

optimis´e pour l’architecture cible, lib´erant ainsi le programmeur de

tˆaches complexes souvent sources d’erreurs. D`es lors, on assiste `a

une acc´el´eration significative du cycle de d´eveloppement

Conception-Implantation-Validation permettant alors au programmeur de tester

´eventuellement plusieurs solutions algorithmiques. De mˆeme, la

r´eduction importante des temps de d´eveloppement favorise l’´evaluation

de diff´erentes granularit´es de traitement dont le rˆole est crucial tant au

niveau de la facilit´e d’expression des algorithmes que de l’efficacit´e des

implantations r´esultantes. Ces aspects confirment l’int´erˆet d’un outil

comme SKiPPER et valident pleinement notre objectif de prototypage

rapide d’applications,

➟ Efficacit´e des applications : L’ex´ecutif distribu´e g´en´er´e par

l’heuristique de placement-ordonnancement de SynDEx constitue un

code optimis´e prenant en compte les possibilit´es de recouvrement

calcul-communication au sein des processeurs et g´erant ce parall´elisme

interne par le biais d’un m´ecanisme efficace de synchronisation,

➟ Mesures pr´edictives : Les mod`eles de performances associ´es `a

cha-cun des squelettes d´evelopp´es facilitent l’´evaluation pr´ecise du coˆut

temporel des applications avant implantation r´eelle sur l’architecture

cible,

➟ Portabilit´e : L’utilisation de SynDEx nous offre certaines

opportu-nit´es de portabilit´e des applications puisque l’effort de portage des

applications se limite au re-d´eveloppement des macro-d´efinitions de

l’ex´ecutif g´en´erique. Cependant, nous avons vu que l’implantation de

l’ordonnancement dynamique des communications dans les squelettes

DFetTFsuppose l’existence de fonctions de transfert de donn´ees non

d´eterministes (ALT). Cet aspect peut donc fortement limiter la

porta-bilit´e de l’approche sur des machines cibles ne poss´edant pas un tel

m´ecanisme de communication.

En conclusion, l’environnement SKiPPER reposant sur le concept de

squelettes fonctionnels de parall´elisation r´epond en r`egle g´en´erale aux six

crit`eres (pr´esent´es au chapitre 1) requis par les mod`eles efficaces de

pro-grammation parall`ele.

Le chapitre suivant de ce m´emoire s’attachera `a d´emontrer l’applicabilit´e

de l’outil SKiPPER en d´ecrivant l’implantation de plusieurs applications de

complexit´e r´ealiste sur l’architecture Transvision.

Applications

5.1 Introduction

Les

chapitres pr´ec´edents ont pr´esent´e SKiPPPER, un environnement ded´eveloppement d’applications parall`eles dont l’objectif est de

perme-ttre le prototypage rapide d’algorithmes de vision artificielle sur une

archi-tecture de type MIMD `a m´emoire distribu´ee.

L’objectif de ce chapitre est de valider l’approche retenue en d´ecrivant

des exemples concrets d’applications d´evelopp´ees et implant´ees en utilisant

cet outil.

Dans un premier temps, nous pr´esentons un ensemble d’algorithmes

sim-ples dont la sp´ecification ne repose que sur un seul des squelettes d´evelopp´es.

Ceci nous permet d’une part de valider l’implantation du squelette sur

l’architecture et d’autre part de mesurer les ´ecarts entre les performances

mesur´ees directement lors de l’ex´ecution et celles pr´edites par les mod`eles

analytiques.

Dans un deuxi`eme temps, nous d´ecrivons un ensemble d’applications plus

complexes mettant en œuvre plusieurs squelettes. Le d´eveloppement de ces

applications a pour objectif de montrer l’applicabilit´e de notre approche `a

des probl`emes de complexit´e r´ealiste de TI bas et moyen niveau.

5.2 Un exemple d’algorithme utilisant le