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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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 BRAMBORmême routine est exécutée sur plusieurs processeurs, physiques ou logiques, en traitant plusieurs donnéesen même temps. La fig. 3.17 illustre cette situation.DDf(D)f(D)T 1D D D DDIVDDT 2f(D)f(D)CQRf(D) f(D)f(D) f(D)D∆tDTnf(D)f(D)FIG. 3.17 : Calcul sur un stream en utilisant les fils d’exécution et l’approche Divi<strong>de</strong> ans Conquer, T ∗ - thread,DIV - phase <strong>de</strong> division du stream, CQR - phase conquer, collecte <strong>de</strong>s résultats, D - donnée, f - fonction dukernelLa différence entre le traitement du stream en parallèle comme on l’a présenté dans <strong>la</strong> section 3.4.1et sur <strong>la</strong> fig. 3.9(b), page 44, qui correspond au paradigme nommé processor farm ; et le traitement dustream en fils d’exécution qui correspond au paradigme Divi<strong>de</strong> and Conquer rési<strong>de</strong> dans le fait que <strong>pour</strong>le <strong>de</strong>rnier, les unités parallèles <strong>de</strong> traitement <strong>de</strong>s threads ne peuvent pas être englobées dans un macrobloc et être perçues comme une seule macro unité traitant le stream. En effet, nous divisons physiquementle stream principal en autant <strong>de</strong> sous-streams qu’il y a <strong>de</strong> fils d’exécution. Ainsi, le procédé Divi<strong>de</strong> andConquer est bien perceptible.Les architectures contemporaines GPPMM, cf. 1.2 dans le chapitre Motivation, page 20, utilisentles fonctionnalités SIMD incorporées dans les instructions et implémentent le parallélisme <strong>de</strong> donnéesau niveau <strong>de</strong>s registres. Nous parlons ainsi du traitement SWAR Nor01 , autrement dit traitement SIMD àl’intérieur d’un registre (angl. SIMD Within A Register), qui correspond au Subword Parallelism dans ledomaine <strong>de</strong> traitement <strong>de</strong>s signaux. Les GPPMM sont également dotés, outre ces fonctionnalités multimédia,<strong>de</strong>s fonctionnalités matérielles <strong>pour</strong> l’exécution à plusieurs fils. Elle nous ouvrent ainsi un autrechamp d’applications. En exploitant le parallélisme présent dans les traitements d’images par <strong>la</strong> <strong>morphologie</strong><strong>mathématique</strong>, nous pouvons facilement augmenter <strong>la</strong> performance finale <strong>de</strong> nos algorithmes surces architectures.L’utilisation <strong>de</strong>s capacités MT dans les applications du traitement d’images <strong>de</strong>vient progressivementune technique courante CHD+ 02 mais son implémentation appartient au domaine <strong>de</strong> <strong>la</strong> programmationspécialisée. Nous distinguons <strong>de</strong>ux approches dans le développement <strong>de</strong> ces applications :• développement manuel qui consiste en programmation d’une application multithread à l’ai<strong>de</strong> <strong>de</strong>smétho<strong>de</strong>s explicites telles que l’utilisation <strong>de</strong>s bibliothèques <strong>pour</strong> <strong>la</strong> création, gestion et synchronisation<strong>de</strong>s threads (Win32 ou POSIX). La restructuration complète du co<strong>de</strong> est exigée <strong>pour</strong> unetelle implémentation.• développement automatique ou semi-automatique à l’ai<strong>de</strong> d’un compi<strong>la</strong>teur. Dans le cas automatiquec’est le compi<strong>la</strong>teur lui-même qui reconnaît les structures parallèles et les traduit en threads.Dans le cas semi-automatique c’est le programmeur qui marque, à l’ai<strong>de</strong> <strong>de</strong>s comman<strong>de</strong>s du préprocesseur,les parties du co<strong>de</strong> à paralléliser qui sont ensuite transformées par le compi<strong>la</strong>teur. Il yincorpore ses propres fonctions <strong>pour</strong> l’exécution <strong>de</strong>s régions en parallèle. Tel est le cas <strong>de</strong> l’APIOpenMP Ope06 qui est intégré, parmi d’autres, dans les compi<strong>la</strong>teurs Intel Bre05, TBG+ 02 du C++ etdu Fortran.50

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

Saved successfully!

Ooh no, something went wrong!