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
Computeest 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
Copyest 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
Dans le document
Prototypage rapide d'applications parallèles de vision artificielle par squelettes fonctionnels
(Page 158-162)