1 / 30

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. La CNFT: définition succincte. Algorithme qui permet de déterminer le meilleur neurone dans l’algorithme de Kohonen (phase de compétition)…

miles
Download Presentation

Parallélisation d’un Algorithme CNFT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. 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 : 44s+70,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 • Performances en fonction de la taille du voisinage pris en compte… cache resonance! P-III Xeon 700MHzL2=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. CNFT Parallèle Version Parallèle SPMD

  12. P0 P1 P2 P3 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

  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. 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 Comparaison de deux configurations à 4 threads : • Évaluation des pertes dues à MPI  Pertes indépendantes de la taille de l’image

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

  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 ?

More Related