La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Parallélisation d’un Algorithme CNFT

Présentations similaires


Présentation au sujet: "Parallélisation d’un Algorithme CNFT"— Transcription de la présentation:

1 Parallélisation d’un Algorithme CNFT
SIDP-SID Supélec                    Parallélisation d’un Algorithme CNFT Olivier Gilloire, Issa Kebe (2A) Stéphane Vialle, Hervé Frezza-Buet Février-Juin 2002

2 La CNFT: définition succincte
Algorithme qui permet de déterminer le meilleur neurone dans l’algorithme de Kohonen (phase de compétition)… Algorithme de calcul numérique intensif en virgule flottante, régulier. Exemple : extraction de contours  démo

3 La CNFT: objectifs du projet
Concevoir une algorithmique parallèle et séquentielle optimisée pour la CNFT Développement parallèle optimisé en environnement de bas niveau (C, MPI, Pthreads) Développement parallèle en environnement de haut niveau (bibliothèque ParCeL-6/NRV) Expérimentation sur Cluster de PC multiprocesseurs : Séq  +Parallèle ShM  +Blocage en cache  +Parallèle Cluster

4 Version séquentielle de référence
L’algorithme CNFT Version séquentielle de référence

5 L’algorithme CNFT Données de type double (utilisation du FPU)
Balayage d’une image d’entrée de taille m x m Influence du voisinage dans un rayon n avec un poids précalculé  « chapeau mexicain » Environ M.N calculs, M=m² et N=n² Démonstration

6 L’algorithme CNFT Erreur = |Sortie(influence ) - Sortie(influence n)|
Taux d’erreurs en fonction du rayon d’influence :  minimal à partir de 35 : nmin = 35

7 L’algorithme CNFT Performances (image 300x300, voisinage 50, 10 itérations) Algorithme « naïf » : 2m27s Avec optimisations sérielles : s ,1% (Loop Unrolling, etc…)

8 L’algorithme CNFT Performances en séquentiel, en fonction de la taille du fichier d’entrée… cache resonance! Athlon 1GHz, L2=256Ko, L1=64Ko

9 L’algorithme CNFT P-III Xeon 700MHz L2=1Mo, L1=16Ko
Performances en fonction de la taille du voisinage pris en compte… cache resonance! P-III Xeon 700MHz L2=1Mo, L1=16Ko

10 L’algorithme CNFT Performances indépendantes de la taille du fichier
Performances dépendantes de la taille du voisinage (vs. taille cache). Bilan de l’algorithme séquentiel : Optimisation de l’utilisation des caches Parallélisation : décomposition en domaines

11 Version Parallèle SPMD
CNFT Parallèle Version Parallèle SPMD

12 CNFT Parallèle Multiprocesseur
PC à mémoire partagée - Pthreads Découpage de l’image en tranches horizontales SPMD-Barrière de synchronisation Pas de problèmes de False Sharing (perte du cache) Pas d’exclusions mutuelles nécessaires Démonstration du balayage P0 P1 P2 P3

13 CNFT Parallèle Multiprocesseur
Performances en fonction de la taille de voisinage, sur QuadX1: PC 4-Xeon 700MHz, L2=1Mo, L1=16Ko, RAM=1Go

14 CNFT Parallèle Multiprocesseur
Accélération réelle sur QuadX1 MAIS Fonction de la taille de voisinage

15 CNFT Parallèle Multiprocesseur
Performances (image 300x300, voisinage 50, 10 itérations) Parallèle sur 4 processeurs avec optimisations sérielles : 12,7s ,2% (+71% par rapport au séquentiel optimisé)

16 CNFT Parallèle Multiprocesseur
Bilan parallélisation en mémoire partagée : Gain de performances x4 dans le cache Les performances s’écroulent en dehors du cache : En Mflops : normal En Speed up : anormal (S < 1,2 pour 4 processeurs) Phénomène classique sur PC multiprocesseur. Nécessité de blocage des données à la taille du cache

17 CNFT Parallèle Bloquée
Nouvelle optimisation sérielle : blocage des données en cache

18 CNFT Parallèle Bloquée
Dans chaque thread : Limite du calcul à un sous-ensemble du voisinage Nécessité de plusieurs passes (sommes partielles) Démonstration

19 CNFT Parallèle Bloquée
Performances sur QuadX1, 4 PIII-Xeon utilisés (700 MHz, L2=1Mo, L1=16Ko) Chute réduite/annulée hors du cache

20 CNFT Parallèle Bloquée
Bilan du blocage Ce type de problèmes se prête bien au blocage Blocage efficace mais imparfait, impossible de contrôler précisément le niveau de performances Performances aussi grandes sur des processeurs simples (Athlon, Pentium…) que sur des Pentium III Xeon (2Mo cache, quadri-processeurs…)

21 L’algorithme CNFT Version Cluster MPI

22 CNFT Parallèle Cluster
Même distribution de données qu’en parallèle local Conservation du multithread sur nœud multiprocesseur Utilisation de MPI : envoi de messages Utilisation d’un maître pour la gestion des données (le numéro 0). Ethernet 100Mbits

23 CNFT Parallèle Cluster
Évaluation des pertes dues à MPI Comparaison de deux configurations à 4 threads :  Pertes indépendantes de la taille de l’image

24 CNFT Parallèle Cluster
Performances en fonction de la taille de voisinage (Volume de communications constant) Comparaison de deux configurations à 4 et 8 threads :

25 CNFT Parallèle Cluster
Accélération en fonction de la taille du voisinage : globalement bénéfique 2 machines 1 machine

26 CNFT Parallèle Cluster
Inefficace pour des voisinages trop petits. Mais dans un cas réel (n  35  50Ko), gain de performances notable. Supérieur au multiprocesseur en terme de €/Mflops dans la zone de rendement optimal (données  100Ko).

27 CNFT Cluster Test sur un cluster plus étendu :
6 machines/14 processeurs : 6,2 Gflops en pointe.

28 Courbe de performances sur Cluster
Speed up en fonction du nombre de processeurs : proche de l’optimum

29 Conclusion L’élément d’importance majeure dans ces algorithmes est le cache. Nécessité de « cache-driven parallelization ». Bon résultat général sur un calcul flottant intensif : Version séquentielle naïve : 120Mflops puis :

30 Parallélisation d’un Algorithme CNFT
                   Questions ?


Télécharger ppt "Parallélisation d’un Algorithme CNFT"

Présentations similaires


Annonces Google