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 dun Algorithme CNFT Olivier Gilloire, Issa Kebe (2A) Stéphane Vialle, Hervé Frezza-Buet Février-Juin 2002 SIDP-SID Supélec.

Présentations similaires


Présentation au sujet: "Parallélisation dun Algorithme CNFT Olivier Gilloire, Issa Kebe (2A) Stéphane Vialle, Hervé Frezza-Buet Février-Juin 2002 SIDP-SID Supélec."— Transcription de la présentation:

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

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

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

4 Lalgorithme CNFT Version séquentielle de référence

5 Lalgorithme CNFT Données de type double (utilisation du FPU) Balayage dune image dentré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 Lalgorithme CNFT Erreur = |Sortie(influence ) - Sortie(influence n)| Taux derreurs en fonction du rayon dinfluence : minimal à partir de 35 : n min = 35

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

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

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

10 Lalgorithme CNFT Performances indépendantes de la taille du fichier Performances dépendantes de la taille du voisinage (vs. taille cache). Bilan de lalgorithme séquentiel : –Optimisation de lutilisation des caches –Parallélisation : décomposition en domaines

11 CNFT Parallèle Version Parallèle SPMD

12 CNFT Parallèle Multiprocesseur PC à mémoire partagée - Pthreads Découpage de limage en tranches horizontales SPMD-Barrière de synchronisation Pas de problèmes de False Sharing (perte du cache) Pas dexclusions 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 +91,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 Lalgorithme CNFT Version Cluster MPI

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

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

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 loptimum

29 Conclusion Lélément dimportance 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 dun Algorithme CNFT Questions ?


Télécharger ppt "Parallélisation dun Algorithme CNFT Olivier Gilloire, Issa Kebe (2A) Stéphane Vialle, Hervé Frezza-Buet Février-Juin 2002 SIDP-SID Supélec."

Présentations similaires


Annonces Google