12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Algorithmes</strong> <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> <strong>pour</strong> les architectures orientées fluxJaromír BRAMBOREfficeon, <strong>de</strong>vrait consommer 3W à 1 GHz Kra04 et implémente les instructions multimédia Tra05c , compatiblesavec MMX, SSE-SSE3 d’Intel ce qui entre intégralement en cohérence avec le sujet <strong>de</strong> cette thèseet ouvre un autre champ d’application <strong>pour</strong> nos algorithmes.3.4 Modèle stream du calcul et les architectures associées3.4.1 Calcul sur les streamsLe calcul qui considère les données comme si elles étaient alignées dans un flux et arrivaient continuellementdans les unités du calcul est propre aux architectures stream et dans <strong>la</strong> taxonomie <strong>de</strong> Duncancorrespond, sans surprise, au type à flux <strong>de</strong> données, cf. 3.1.2.4.Toutes les données qui passent par une unité exécutive sont traitées <strong>de</strong> <strong>la</strong> même façon par un et mêmeprogramme. Il s’agit d’une caractéristique forte et très importante car elle nous permettra <strong>de</strong> facilementparalléliser l’exécution à l’intérieur d’une unité du calcul par <strong>la</strong> multiplication <strong>de</strong> nos moyens matériels.Ainsi, plusieurs blocs d’exécution à l’intérieur d’une unité du calcul vont pouvoir travailler concurremmenten exécutant le même programme, en se partageant les données du flux d’entrée et en assemb<strong>la</strong>ntles résultats dans un flux <strong>de</strong> sortie.Si le traitement d’une donnée est indépendant <strong>de</strong>s autres données, <strong>la</strong> parallélisation se révèle simple.Cette situation est démontrée sur <strong>la</strong> fig. 3.9. Sa partie 3.9(a) illustre le traitement d’un stream <strong>de</strong> donnéesoù ce n’est qu’une seule donnée qui est traitée dans un temps ∆tet indépendamment <strong>de</strong>s autres données.La parallélisation <strong>de</strong> ce traitement est présentée sur <strong>la</strong> fig. 3.9(b) ; dans le même intervalle ∆t, n donnéesdu flux d’entrée sont distribuées, traitées dans les unités exécutives et assemblées à nouveau dans le flux<strong>de</strong> sortie.Notons que dans le cas où le traitement d’une donnée <strong>de</strong> sortie dépend <strong>de</strong> plusieurs données d’entrée(e.g. <strong>la</strong> somme <strong>de</strong>s éléments), <strong>la</strong> stratégie <strong>de</strong> parallélisation ne sera pas aussi intuitive et va fortementdépendre du caractère <strong>de</strong> l’opération à effectuer.∆tD D D D D D E D D D D D D(a) exécution en stream avec 1 unité exécutive∆tDDDDDDE 1E 2E nDDD D DD(b) exécution en stream et en parallèle avec n unités exécutivesFIG. 3.9 : Calcul sur un stream <strong>de</strong> données, D - donnée, E i - unité exécutive iD’une façon générale, nous ne parlons pas d’une opération ou d’un programme mais plutôt d’unkernel. Kernel est un terme qui englobe toutes les activités qui peuvent être effectuées sur un stream.Regardons maintenant quels sont les types d’opérations les plus courantes du paradigme stream queles kernels implémentent. Il s’agit <strong>de</strong> l’application (angl. map), <strong>de</strong> <strong>la</strong> réduction (angl. reduce), et dufiltrage (ang. filtering). Davantage <strong>de</strong> types <strong>de</strong> kernels opérant sur les stream peut être consulté dans <strong>la</strong>littérature OLG+ 05 . Remarquons que ces opérations ont leurs correspondants directs dans les fonctions <strong>de</strong>divers <strong>la</strong>ngages <strong>de</strong> programmation qui supportent, d’une façon ou <strong>de</strong> l’autre, le travail avec les listes.Notamment il s’agit <strong>de</strong> Haskell, LISP, Python.44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!