2.4 Notre approche
2.4.1 Choix d’une biblioth`eque de squelettes
Comme nous l’avons vu au paragraphe 1.2.2, le TI peut ˆetre subdivis´e en
trois cat´egories distinctes : bas, moyen et haut niveau. Il est difficilement
envisageable de constituer une biblioth`eque de squelettes pouvant faire face
aux traitements issus d’un domaine aussi large. Face `a ce d´elicat probl`eme,
notre approche est de restreindre volontairement le champ d’application des
squelettes aux seuls algorithmes class´es en bas et moyen niveau. Cette
limi-tation d´elib´er´ee est ais´ement justifiable par les raisons suivantes :
➟ Les traitements de bas et moyen niveau constituent de mani`ere ´evidente
les premi`eres ´etapes de toute chaˆıne de vision artificielle. De fait,
ceux-ci poss`edent un fort potentiel de r´eutilisation.
➟ Ces mˆemes traitements (et principalement ceux de bas niveau)
manipu-lent des quantit´es de donn´ees consid´erables et sont donc naturellement
candidats `a des phases de parall´elisation.
➟ Enfin, au moment o`u ces travaux ont d´ebut´es, nous avions en notre
pos-session une exp´erience cons´equente aussi bien dans le d´eveloppement
d’applications deTIbas et moyen niveaux que dans leur parall´elisation
sur la machine Transvision (par exemple, l’aide `a la conduite
auto-mobile a constitu´e un axe de recherche important `a travers le projet
europ´een Promotheus sur le v´ehicule exp´erimental Prolab[BDHR94]).
Toutefois, malgr´e cette restriction suppl´ementaire du domaine
d’application, il n’est pas trivial d’effectuer le choix d’une base de
squelettes. Le probl`eme majeur `a r´esoudre consiste `a ´equilibrer la balance
entre sp´ecificit´e et g´en´eralit´e. La sp´ecificit´e impose un nombre
relative-ment important de squelettes hauterelative-ment sp´ecialis´es tandis que la g´en´eralit´e
est plutˆot synonyme d’un faible nombre de squelettes d’ordre g´en´eral.
Premi`erement, consid´erons le cas de la sp´ecificit´e. Cette approche offre
des opportunit´es d’efficacit´e puisque les implantations parall`eles associ´ees `a
chacun des squelettes sont “taill´ees sur mesure”. A chaque nouveau probl`eme
ne pouvant ˆetre exprim´e facilement et/ou efficacement sous la forme d’une
composition de squelettes d´ej`a existants, il est tentant d’ins´erer un nouveau
squelette dans la biblioth`eque. Cette d´emarche a des r´epercussions directes
aux niveaux syst`eme et utilisateur. Du point de vue du syst`eme, l’effort
req-uis pour cr´eer le nouveau squelette peut ˆetre suffisamment ´elev´e pour rendre
cette approche rapidement impraticable. En effet, l’implantation de chaque
nouveau squelette est `a ´etudier pour l’ensemble des plates-formes pouvant le
supporter. De plus, le temps consacr´e au re-d´eveloppement des implantations
des squelettes en cas de changement d’architecture cible est proportionnel au
nombre de ces squelettes et peut de fait devenir prohibitif. Enfin, une
par-tie non n´egligeable des nouveaux squelettes cr´e´es est tr`es sp´ecifique `a des
applications particuli`eres entraˆınant ainsi un taux d’utilisation faible.
Du point de vue de l’utilisateur, l’augmentation du nombre de squelettes
r´eduit in´evitablement leur visibilit´e. Les d´eveloppeurs inexp´eriment´es dans
le domaine de la programmation parall`ele risquent alors d’ˆetre “noy´es” sous
la pl´ethore d’op´erateurs. L’exp´erience montre en effet qu’un programmeur
maˆıtrise intuitivement mieux un faible nombre de squelettes `a large
spec-tre qu’un grand nombre `a specspec-tre plus ´etroit. Une collection resspec-treinte de
squelettes de plus haut niveau, poss`ede donc intrins`equement un plus grand
potentiel de r´eutilisation. En contrepartie, l’optimisation des performances
et le d´eveloppement de mod`eles analytiques de performances sont de mani`ere
g´en´erale plus d´elicates `a obtenir pour des squelettes tr`es g´en´eraux.
Dans notre cas, le choix du nombre de squelettes et de leurs
car-act´eristiques est r´esolu simplement de mani`ere tr`es pragmatique. La
bib-lioth`eque de squelettes associ´es au TI est d´efinie `a partir d’une analyse a
posteriori des applications de TI. Par chance, nous poss´edons dans le
do-maine de nombreuses r´ealisations dont quelques exemples ont ´et´e donn´es au
paragraphe 1.2.1.
Les r´esultats de cette analyse mettent en ´evidence quatre classes
princi-pales de sch´emas pouvant ˆetre mod´elis´es en squelettes :
➟ Les sch´emas d´edi´es au traitement g´eom´etrique des donn´ees. Ils
repr´esentent les formes les plus simples du parall´elisme de donn´ees
ef-fectuant des transformations de type image → image dans lesquelles
on applique un ensemble d’instructions sur chaque pixel de l’image.
L’image originale est divis´ee initialement en sous-domaines r´eguliers
(bandes horizontales ou verticales, imagettes, etc.) par une fonction
de d´ecoupage sp´ecifique `a l’application. Chacune des partitions est
alors trait´ee ind´ependamment des autres par le mˆeme op´erateur.
Fi-nalement, l’image r´esultat est reconstruite par concat´enation des
sous-domaines r´esultats. Ce type de sch´emas de parall´elisation est utilis´e
principalement pour des op´erateurs deTI bas niveau tels que
convolu-tion, seuillage, etc.
➟ Les sch´emas d´edi´es aux phases d’extraction de caract´eristiques `a partir
des images. Dans ce cas l`a, une strat´egie d’implantation similaire `a
celle d´ecrite pr´ec´edemment est employ´ee. La diff´erence majeure vient
du fait que chaque r´esultat partiel ne repr´esente plus une portion de
l’image mais un ensemble d’attributs calcul´es d’o`u le recours `a une
fonction sp´ecialis´ee (et propre `a l’application envisag´ee) de fusion de
ces r´esultats. Ce type de sch´emas est `a la fois utilis´e enTI bas niveau
(histogramme des niveaux de gris par exemple) et enTImoyen niveau
(chaˆınage de points contour par exemple).
➟ Les sch´emas encapsulant des structures de contrˆole de type fermes de
processeurs op´erant soit sur des donn´ees (data farm), soit sur des tˆaches
(task farm). Ceux-ci sont principalement utilis´es dans les traitements
de moyen niveau (approximation polygonale d’une chaˆıne de points
connexes, division r´ecursive d’images. etc.) lorsque la complexit´e des
traitements est fortement d´ependante des donn´ees d’entr´ee.
➟ Les sch´emas traduisant la nature it´erative des algorithmes de vision.
En effet, un grand nombre d’applications embarqu´ees dans des syst`emes
complexes manipulent non plus des images fixes mais des flots continus
de donn´ees. Parmi ceux-ci, citons les algorithmes de type
pr´ediction-v´erification pour lesquels le traitement de l’imageid´epend des r´esultats
issus des imagesi−1, · · ·,i−k. L’application de d´etection et de suivi
de v´ehicules d´ecrite au paragraphe 1.2.1.2 repose sur ce type de sch´ema.
La premi`ere classe d’algorithmes apparaˆıt comme un cas particulier de
la deuxi`eme cat´egorie puisque la phase de fusion finale est r´eduite `a sa plus
simple expression c’est `a dire une op´eration purement g´eom´etrique de
con-cat´enation d’images.
Deuxi`emement, la distinction entre les structures de contrˆole de type
data farm et task farm doit ˆetre effectu´ee. Mˆeme si les diff´erences entre
ces squelettes semblent relativement fines en raison essentiellement de la
na-ture similaire de leurs mod`eles d’implantation, l’analyse des applications
re-posant sur de tels sch´emas montre qu’ils s’adressent r´eellement `a deux classes
d’algorithmes s´eparables.
Ces constations ´etant effectu´ees, il apparaˆıt d´esormais que quatre
squelettes ´el´ementaires vont constituer les briques de base de notre
bib-lioth`eque de programmation parall`ele :
➟ SCM(Split-Compute-Merge) regroupe les sch´emas des deux premi`eres
cat´egories.
➟ DF(Data-Farming) et TF (Task-Farming) repr´esentent les structures
de contrˆole de type ferme de processeurs op´erant respectivement sur
des donn´ees et des tˆaches.
➟ ITERMEM(ITERate-with-MEMory) prend en compte la nature
con-tinue des flots d’images.
Ces quatre squelettes seront d´ecrits plus pr´ecis´ement dans les paragraphes
2.4.2 `a 2.4.5. Mais, auparavant, il est indispensable d’effectuer les remarques
suivantes.
Tout d’abord, notre proposition reprend la s´eparation classique des
sch´emas `a parall´elisme de donn´ees et de contrˆole. Cette distinction a d´ej`a
´et´e mise en ´evidence dans des m´ethodologies d´ecrites pr´ec´edemment comme
P
3L. Dans notre cas, le squelette SCMest class´e dans la premi`ere cat´egorie
alors que les squelettes DF,TFetITERMEMsont rattach´es `a la deuxi`eme
famille.
Deuxi`emement, notre public cible est celui des programmeurs œuvrant
en TI qu’ils soient familiers ou non avec le parall´elisme. Ce but ne
pourra ˆetre atteint que si les squelettes propos´es encapsulent des sch´emas
de parall´elisation usuels dont la s´emantique op´erationnelle est ais´ement
compr´ehensible. C’est le cas par exemple du squelette SCM qui regroupe
les formes classiques de parall´elisme de donn´ees dans lesquelles une mˆeme
fonction est appliqu´ee sur des partitions diff´erentes des donn´ees d’entr´ee. De
mˆeme, le squeletteITERMEMposs`ede un comportement relativement
sim-ple `a comprendre pour un programmeur habitu´e aux formulations it´eratives
des algorithmes de TI. Par contre en ce qui concerne les squelettes DF et
TF, on ne peut que constater que ceux-ci atteignent probablement la limite
sup´erieure de complexit´e pour les programmeurs peu avertis.
Enfin, la proposition faite des quatre squelettes — `a partir de l’analyse
d’applications existantes — constitue une premi`ere biblioth`eque de base.
Rien ne peut assurer a priori que l’int´egralit´e du TI bas et moyen niveau
puisse ˆetre couverte par cet ensemble restreint. Cependant, nous avons jug´e
que la mise en place d’outils de parall´elisation reposant dans un premier
temps sur ces quatre squelettes entraˆınerait naturellement un accroissement
de notre expertise dans le domaine. D`es lors, si le besoin se fait sentir
d’ins´erer de nouveaux squelettes pour r´epondre `a d’autres probl`emes plus
sp´ecifiques, rien ne pourra empˆecher leur d´eveloppement.
Dans le document
Prototypage rapide d'applications parallèles de vision artificielle par squelettes fonctionnels
(Page 89-92)