• Aucun résultat trouvé

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

3

L. 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.