• Aucun résultat trouvé

Parallélisme gros grain pour le calcul de la LPE

2.4.1 Introduction

Nous venons d'étudier des implantations sur lesquelles le ot de données est simple: proces-seur conventionnel et architecture pipe-line. Une technique pour accélérer les temps de traitement revient à chercher à paralléliser la tâche à accomplir en répartissant les données à traiter entre plusieurs ressources de calcul. L'approche que nous développons ici utilise le parallélisme concur-rent entre des processeurs travaillant sur des portions distinctes de l'image. Elle fait appel à un calculateur multi-processeurs.

Les machines multi-processeurs sont composées d'un nombre nettement plus faible de pro-cesseurs qu'il y a de pixels dans l'image1: on parle de machines à gros grain. Ces machines sont classées parmi les architectures MIMD. Chaque processeur développe une puissance de calcul pouvant atteindre celle d'une machine mono-processeur. À partir d'instructions et de données stockées dans une mémoire locale (ou cache local), il est capable d'eectuer des tâches complexes de manière indépendante des autres processeurs. Tout va pour le mieux tant que les processeurs travaillent sur des tâches indépendantes. Dans la plupart des applications, pourtant, ils sont ame-nés à travailler sur une sous-tâche d'une opération complexe qui doit être résolue globalement. Ils sont alors contraints de dialoguer en échangeant des données: on parle de synchronisation des processus. Ce partage se fait par l'intermédiaire d'un réseau d'interconnexions et/ou d'une mémoire partagée2 (Houzet, 1996;ChowetBatchelor, 1992). Les processeurs ont souvent des copies locales (dans la mémoire locale) de données de la mémoire partagée, comme illus-tré par la gure 2.24. Il faut assurer la cohérence des données présentes dans les mémoires des processeurs. La mise à jour de ces copies locales est une question centrale (Sternström, 1990;

Toma²evi¢ et Milutinovi¢, 1994; Torrella et al., 1994). Nous ne nous attarderons pas à détailler les problèmes de synchronisation dans le cas général, mais en donnerons une illustration dans le cas de la LPE.

2.4.2 Répartition des données entre processeurs

La première question à résoudre concerne la répartition des tâches entre processeurs (ou grains). La répartition d'une tâche globale entre

n

sous-tâches est résolue fréquemment par une partition de l'espace des données initiales. Chaque processus évalue une solution sur une partition qui lui est propre. Les résultats partiels sont recombinés pour donner le résultat global. Cette re-combinaison peut être complexe lorsqu'un processus dépend des résultats partiels intermédiaires des autres. En traitement d'images, l'utilisation d'un découpage de l'image en sous-images ou fenêtres est courante (Alnuweiri etPrasanna, 1992; Embrechts et al., 1993;Johansson, 1994). La machine Transvisions (Dérutin et al., 1991), par exemple, est constitué d'un réseau de Transputeurrtravaillant chacun sur une zone de l'image. Cette approche est particulièrement bien adaptée à des algorithmes de croissance de régions du type split and merge ou devide and conquer(Pavlidis, 1977;Willebeek-LeMairetReeves, 1990) ou à l'analyse multi-résolution (LiangetWong, 1993b) qui est, par nature, une analyse par zones. Dans ce cas, il est fréquent que les processeurs soient organisés en pyramide, structure qui est proche de la nature de ce type de traitement.

(Moga et al., 1994) proposent une implantation du calcul de la LPE sur machine multi-processeurs basée sur un découpage en zones. Supposons la machine constituée de grains ou

1. On en dénombre typiquement de quelques unités à quelques dizaines. 2.Shared memory.

2.4. Parallélisme gros grain pour le calcul de la LPE 69

Mémoire locale

Processeur 1 Processeur 2 Processeur N

Mémoire locale Mémoire locale Réseau d'interconnexion Mémoire globale

Fig. 2.24  Machine multi-processeurs.

Processeurs Élémentaires (PE) notés

PE

1

;PE

2

;::: ;PE

n. Le domaineDde l'image est découpé en

n

fenêtres rectangulaires non recouvrantes, notées DPEi. On a alors:

D=[n

i=1

DPEi et8

j

=

i;

DPEi\DPEj =; (2.17) À partir de ce partitionnement, de nouvelles fenêtres

f

i recouvrantes sont créées, dont les do-maines Dfi sont constitués des points vériant:

Dfi =f

p

:

d

(

p;

DPEi)1g (2.18)

Avec la métrique city-block (cf. annexe A), chaqueDfi correspond àDPEi auquel on ajoute une ligne au nord et au sud et une colonne à l'est et à l'ouest, comme l'indique la gure 2.25.

Chaque processeur traite une fenêtreDfiet donne un résultat dans une fenêtre de sortie notée

Doi. Les fenêtresDoi sont non-recouvrantes et constituent l'image de sortie Do =Sn i=0

Doi. La machine utilisée par (Moga et al., 1994) traite les fenêtres en mode Single Program Multiple Data (SPMD): chaque Processeur Élémentaire (PE) exécute le même programme de manière asynchrone. Ce programme se divise en trois phases:

 recherche des minima;  étiquetage;

 construction des BV par immersion.

Comme chacune de ces opérations est un traitement global sur la totalité de l'image, les PE devront communiquer et être resynchronisés si nécessaire. Cette tâche est dévolue à un processus maître qui reçoit des messages des PE (observabilité) et envoie des ordres à ces PE

Fig.2.25  Partitionnement de l'image en 4 fenêtres avec la métrique city-block.

(commandabilité). La synchronisation des processus est assurée lorsque des données doivent être propagées entre les sous-images au niveau des frontières. Le stockage des paramètres de synchro-nisation sous forme de graphes (Alnuweiri et Prasanna, 1992) ou de tables d'équivalences (Embrechtset al., 1993;Johansson, 1994) assure la cohérence entre les informations. C'est la méthode des tables d'équivalence qui a été retenue ici. Dénissons une notion de voisinage entre les fenêtres de sortie. Nous noterons

B

oi(

o

j) les points du domaine Doi ayant un voisin dans la fenêtreDoj.

B

oi(

o

j) =f

p

:

p

2Doi et9

p

0

2N(

p

) :

p

0

2Dojg (2.19)

Si les fenêtres d'indice

i

et

j

sont telles que

B

oi(

o

j) existe, alors elles sont dites voisines et les PE,

PE

i et

PE

j, qui leur sont associés sont dits voisins.

2.4.3 Calcul de la LPE dans une image partitionnée

(Mogaet al., 1994) décrivent la recherche des minima et leur étiquetage avec une architecture MIMD. Ces points ne seront pas détaillés ici. On suppose, comme précédemment, que nous disposons des minima étiquetés pour le calcul de la LPE. Chaque PE exécute l'algorithme d'inondation par FAH. Il dispose donc d'une FAH qui lui est propre, initialisée par les bords des minima de la fenêtre qu'il doit traiter. On note

F

fi(

M

), l'ensemble des points frontières des minima

M

dans la fenêtre

f

:

F

fi(

M

) =f

p

:

p

2

M

et9

p

0

2N(

p

) :

p

0

2

M

cg (2.20)

Les points de

F

fi(

M

) sont insérés dans la FAH locale durant la phase d'initialisation. La pro-pagation se déroule comme dans l'algorithme 6 jusqu'à ce qu'un front de propro-pagation touche le bord d'une fenêtre. Des données issues de cette fenêtre doivent alors se répandre dans une ou plusieurs fenêtres voisines. Il s'agit, à ce moment là, de veiller au synchronisme du processus d'inondation globale. Voyons à présent comment ce synchronisme est assuré.

Synchronisation des processus parallèles

Avant de commencer la propagation, chaque processeur avertit le processeur maître des données susceptibles de se propager d'une image à une autre. Il faut prévoir les points qui peuvent participer à cette propagation. Pour le processeur

PE

i, ce sont les points

p

des bords

2.4. Parallélisme gros grain pour le calcul de la LPE 71

p

2

B

oi(

o

j) qui n'appartiennent pas à un minimum

M

à l'instant initial, ou alors ceux qui sont à la frontière d'un tel minimum:

p

2(

B

oi(

o

j)\(

M

c[

F

fi(

M

))) (2.21) Les niveaux de gris de ces points sont stockés dans un vecteur

V

i;j et transmis à

PE

j. Le processeur

PE

j connaît à présent les niveaux auxquels une inondation provenant de

PE

i peut survenir. Vu que la propagation des données se fait aussi bien de

PE

ivers

PE

j qu'en sens inverse, les niveaux de synchronisation entre deux PE voisins sont dénis par la table d'équivalence

S

i;j =

V

i;j[

V

j;i. Parmi ces points, ceux de niveau de gris supérieur à

min

(

max

(

V

i;j)

;max

(

V

j;i)) sont éliminés de

S

i;j car ils ne risquent pas de participer à une propagation inter-fenêtres. Si nous considérons l'ensemble des

PE

j voisins des

PE

i, nous sommes amenés à dénir les niveaux de synchronisation de

PE

i avec ses voisins par

S

i =S

j

S

i;j.

Comme nous l'avons dit plus haut, c'est un processus superviseur qui assure la synchroni-sation entre les PE. Il doit connaître l'ensemble des niveaux de synchronisynchroni-sation de la machine, donné par:

S

=S

i

S

i, ce qui nous conduit à écrire:

S

=[

i

[

j

S

i;j (2.22)

Le processeur maître connaît donc l'ensemble des niveaux de gris

h

de synchronisation et le groupe

G

h de PE concerné par ce niveau de synchronisation, c'est-à-dire l'ensemble des

PE

i tel que

h

2

S

i.

L'inondation peut maintenant commencer. Chaque

PE

i exécute la phase de propagation de l'algorithme 6 jusqu'à ce qu'un niveau de synchronisation

h

soit atteint:

h

2

S

i. Le processeur

PE

iindique au superviseur qu'un niveau de synchronisation a été atteint et attend la permission de continuer. Le processeur maître donne cet ordre lorsque les autres processeurs de

G

h sont au même niveau de synchronisation. La communication entre PE du groupe

G

h peut commencer. Les PE de

G

h reçoivent des PE voisins qui sont aussi, dans

G

h, les coordonnées des points de synchronisation ainsi que le label associé. Les PE concernés mettent à jour leur FAH. Cette phase équivaut, en quelque sorte, à une phase d'initialisation de la FAH qui aurait lieu en cours de traitement. Il est possible que, pour un même niveau, plusieurs appels au superviseur aient lieu à des instants distincts.

Les PE du groupe

G

h n'ayant plus de bords à propager au niveau

h

ne sont pas réactivés lors d'un second ordre de propagation au niveau

h

. Ils sont  éteints  et n'écoutent plus le maître pour ce niveau. Lorsque la synchronisation est terminée, le maître est prêt à recevoir de nouvelles demandes de synchronisation. Si

h

n'est plus (pas) un niveau de synchronisation pour

PE

i, il est en droit de passer à un niveau supérieur.

Le principe de synchronisation assure donc la cohérence entre les niveaux de gris de l'image, c'est-à-dire la cohérence verticale. La priorité au sein des les proprement dites ne peut, par contre, être assurée entre les PE. La conséquence de cet asynchronisme intra-niveau est que l'on ne peut partager les plateaux s'étendant à travers plusieurs fenêtres selon la distance géodésique. Ces plateaux sont ensuite retraités à part.

(Meijster et Roerdink, 1995) proposent de transformer les sous-images de départ en un graphe dont les noeuds sont les composantes connexes dans les niveaux de quantication. Il utilise aussi un parcours en largeur d'abord à l'intérieur de ce graphe sur une machine SPMD. Le problème des plateaux n'a cependant pas à être géré en cours de traitement. Lors de la transformation du graphe résultat vers l'image résultat, il obtient une image de ZPE. Une squelettisation est alors nécessaire pour aboutir à la LPE.

2.4.4 Performances

Nous allons maintenant nous intéresser au gain en performance apporté par le passage à une architecture multi-processeurs. Les critère de performance utilisés sont le temps d'exécution T(n) et l'accélération absolue

A

=

T

(4)

=T

(

n

) où

T

(4) représente le temps d'exécution de l'algorithme lorsque la machine compte 4 PE et

T

(

n

) le temps d'exécution lorsque la machine compte

n

PE (HoffmanetZou, 1993). Nous avons décrit en détail le partage de l'algorithme par FAH sur ma-chine multi-processeurs pour illustrer les dicultés engendrées par une telle démarche. D'autres algorithmes peuvent également être transférés sur une machine multi-processeurs: l'algorithme de recherche des chemins de coûts minimaux à parcours optimisé (Moga et Gabbouj, 1995) et l'algorithme d'intégration à balayages réguliers vidéos et anti-vidéos (Moga et al., 1995). Une machine Parsytec SuperCluster 128 ainsi qu'un Cray T3D ont été utilisés pour tester ces algorithmes. Le Parsytec est un réseau de 128 Transputerr T805 cadencés à 25 MHz disposant de 4 Mo de mémoire et de 4 liens vers les processeurs voisins nord, sud, est et ouest. La commu-nication entre processeurs est assurée à la cadence de 1,8 Mo/s. Le Cray T3D est un réseau de 256 noeuds composés chacun de 2 processeurs DEC Alpha 21064 cadencés à 150 MHz disposant de 64 Mo de mémoire. Les noeuds communiquent par 6 liens ayant un débit de 300 Mo/s. La gure 2.261 présente le temps

T

(

n

) pour ces deux machines, avec un nombre de processeurs variant de 4 à 64, dans le cas de l'algorithme par intégration à balayages réguliers (intégration), de l'algorithme par FAH (FAH) et de la recherche des chemins minimaux à parcours optimisé (coût min.). Ces résultats sont obtenus à partir d'une image contenant de nombreux minima (image de test peppers). Ils ne sont qu'indicatifs puisque l'ecacité dépend de la répartition des données dans l'image. En particulier, la parallélisation sera d'autant plus importante que les marqueurs initiaux seront uniformément répartis entre les processeurs et que les BV ne seront pas partagés par plusieurs processeurs.

0 20 40 60 80 100 120 140 160 180 200 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 T(n) (sec) n FAH Integration Cout min. a 0 0.5 1 1.5 2 2.5 3 3.5 4 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 T(n) (sec) n FAH Integration Cout min. b

Fig. 2.26  Temps de traitement en secondes sur machine Parsytec (a) et Cray T3D (b) en fonction du nombre de processeurs.

Nous constatons sur la gure 2.26 que l'allure des courbes de vitesse est sensiblement la même sur les deux machines pour un algorithme donné. L'accélération est donc pratiquement équivalente dans le cas des deux implantations, même si les temps absolus mettent en évidence une diérence de performance entre les deux machines. L'accélération est donnée dans le cas de la machine Parsytec par la gure 2.27.

Dans les algorithmes à parcours data-driven, les points ne sont aectés qu'une fois, alors qu'avec l'approche à parcours régulier, tous les points sont traités de nombreuses fois avant 1. Les données de ces courbes sont issues des travaux de A.Mogaet M.Gabboujdu Laboratoire de Traitement du Signal de l'Université de Tampere (Finlande) et présentés avec leur autorisation.

2.4. Parallélisme gros grain pour le calcul de la LPE 73 1 3 5 7 9 11 13 15 0 10 20 30 40 50 60 70 A(n) n FAH Integration Cout min. Lineaire

Fig. 2.27  Accélération en fonction du nombre de processeurs sur machine Parsytec. d'arriver à l'idempotence. Les algorithmes à parcours optimisé (coût min. et FAH) sont de ce fait les plus rapides. Par contre, l'algorithme à balayage régulier est bien adapté à une solution multi-processeur, dans la mesure ou l'augmentation du nombre de PE a un fort impact sur le temps de traitement (cf. gure 2.26.a). Il faut cependant que ce nombre de processeur soit d'environ 60 pour que la  scalabilité  de l'algorithme à balayage régulier l'emporte sur la rapidité intrinsèque à l'algorithme par FAH.

2.4.5 Vers une autre répartition des tâches

Les approches basées sur le partage de l'image en blocs donnent des résultats satisfaisants lorsque les sources de propagation se répartissent entre les processeurs. (MeijsteretRoerdink, 1996) proposent une autre répartition des données entre les ressources de traitement. Au lieu de partager le domaine de propagation, ils assignent un minimum par processeur1. La machine MIMD utilisée est un Cray J932 disposant d'une mémoire partagée à laquelle chaque processeur a accès. L'algorithme implanté est basé sur la recherche de coûts minimaux par un balayage optimisé. Il est aisé de porter un algorithme de parcours en largeur d'abord sur une telle machine, puisqu'un processeur accédant à un point dans la mémoire partagée saura si ce point a déjà été aecté. La  durée de vie  d'un processus est ici liée à la taille du BV que le processeur associé aura à inspecter. L'accélération sera d'autant plus forte que la taille des BV sera répartie uniformément entre les processeurs. Les résultats obtenus sur la même image de test que celle utilisée dans la gure 2.26 sont donnés gure 2.28.

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 2 4 6 8 10 12 14 16 T(n) (sec) n

Fig. 2.28  Temps de traitement (en secondes) lors d'une répartition par BV en fonction du nombre de processeurs.

L'accélération est quasi linéaire pour un nombre de processeurs inférieur à 16. Au-delà, les 1. Dans la pratique, lorsque le nombreM de minima est supérieur au nombreP de processeurs, chaque pro-cesseur traiteraM=P minima.

références concurrentes aux mêmes emplacements mémoire commencent à intervenir signicati-vement et le gain en vitesse devient insigniant.

2.4.6 Conclusion

Les opérateurs géodésiques font partie des traitements non uniformes. Leur parallélisation sur machine parallèle est, de ce fait, souvent fortement ralentie pour des besoins de synchroni-sation (Willebeek-LeMair etReeves, 1990). C'est principalement cet aspect qu'il faut viser à optimiser en cherchant des algorithmes appropriés. (Mogaet Gabbouj, 1995) proposent di-verses approches algorithmiques en cherchant un compromis entre traitement à eectuer par chaque processeur et communication. Une autre approche, proposée par Meijster (Meijsteret

Roerdink, 1996), vise également à réduire la communication et limite le nombre de points où celle-ci est nécessaire. Au lieu de xer arbitrairement des zones, donc des frontières entre les espaces à traiter par chaque processeur, il assigne à chaque processeur la propagation dans un BV et réduit ainsi les points de communications aux points de la LPE.

Dans un cas comme dans l'autre, les temps de traitement dépendent largement des données, et plus exactement, de leur répartition dans l'image. Pour certaines images, les processeurs doivent s'attendre mutuellement, si bien qu'un seul d'entre-eux est actif à un instant donné. Ce problème est lié au caractère non uniforme des traitements géodésiques.