Parallélisation d’un Algorithme CNFT

Slides:



Advertisements
Présentations similaires
Disque dur 2 Go Ecran + clavier local Host Paramètrage Analyse Dialogue avec l'extérieur PC/Modem DSP 16 entrées logiques 8 entrées analogiques DSP 16.
Advertisements

Lille, France – 02/12/2009 Journées CIGIL
Systèmes, algorithmes et applications: Efficacité du parallélisme. Gaétan Hains LIFO, Université d'Orléans Janvier 2001.
Journée projet CGP2P Laboratoire ID / Projet APACHE (URM 5132) Equipe G3 Grappe & Grille de Grappe 3 Enseignant-Chercheurs 7 Doctorants DEAs.
Accélération du Rendu Volumique basée sur la Quantification des Voxels
Efficient Simplification of Point-Sampled Surfaces
Master de recherche informatique Université de Montpellier 2
2.1 Rappel des fondements de l’analyse microéconomique: les entreprises et la production Yves Flückiger.
Mobiles Services and Midlets
5 critères de qualité d'un test
PFE ASR 2006 Binôme: Ahmed Amine Haoues Nabil Gasri
Application de réseaux bayésiens à la détection de fumées polluantes
Simplification et abstraction de dessins au trait
Optimisation algébrique de requêtes relationnelles
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
Mémoire & Processus Cours SE - SRC
Architecture Systèmes
A Pyramid Approach to Subpixel Registration Based on Intensity
Lancer de rayons interactif
Séminaire IMS 10/01/2008 Distribution large échelle d’un algorithme financier de contrôle stochastique CIGC05 - GCPMF Xavier WARIN (EDF R&D - OSIRIS) Stéphane.
Traitement de flux vidéo sur GPU (Processeur graphique)
El-Djillali TALBI Doctorant systèmes industriels
Architecture de machines La mémoire
Plan 1.Présentation du sujet 2.Expériences protocoles résultats 3.P-rating 4.64 bits 5.Multi cœur 6.conclusion.
Analyse et traitement de données de grande taille en imagerie médicale Cybèle Ciofolo-Veit Philips Research Paris - Medisys Conférence Mathématiques.
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Sélection automatique d’index et de vues matérialisées
ARCHITECTURE DES ORDINATEURS
Aspects quantitatifs de la conception
CHAPITRE 10 Fonctions affines – Fonctions linéaires
Eric Guilbert, Marc Daniel *, Eric Saux
Architecture de grille générique, multi-
Classification Multi Source En Intégrant La Texture
O. Coulaud Projet Numath IECN/ Inria-Lorraine
Plan d’expérience dynamique pour la maximisation
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Préchargement de données dans un logiciel DSM Jean Christophe Beyler (ICPS-LSIIT) Michael Klemm (Uni. Erlangen) Ronny T. Lampert (Uni. Erlangen) 01/06/2006.
Franck Cappello CNRS, LRI, Université Paris-sud
Pattern Matcher ancel_a, creuso_a, chanio_f 1. Le jeux Une plaine qui contient de lherbe, des moutons et des loups. Un système daction en tour par tour.
Présenté à: M. Froduald Kabanza Par: Jonathan Pelletier Cody Stoutenburg Simon-Pierre Thibault.
1 Système de régulation et dordonnancement de requêtes dE/S au sein des architectures parallèles Thanh-Trung VAN (M2R « Systèmes et Logiciels ») sous la.
Architectures de grappes de PC
Module 8 : Maintenance des logiciels à l'aide des services SUS
Parallel Programming in C with MPI and OpenMP
Efficacité des algorithmes
Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI.
LSIIT-ICPS Illkirch, le 11 décembre 2001
L’adaptativité pour un solveur de l’équation de Vlasov
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
Calcul d ’interactions Antenne/Structure par FMM
Plate-forme MIRAGE Méso-Informatique Répartie pour des Applications en Géophysique et Environnement.
Méthodes de décomposition de domaine pour la formulation mixte duale du problème critique de la diffusion des neutrons Pierre Guérin
Etude et test des algorithmes d'estimation de mouvement en MPEG
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
1 Alain Casali Christian Ernst Extraction de Règles de Corrélation Décisionnelles 29 Janvier 2009.
La Gamme P OWER M ATE La Gamme P OWER M ATE. Agenda 1. Benchmark Celeron & Roadmap Intel 2. La Gamme P OWER M ATE 3. La Gamme Moniteurs NEC.
D. E ZEGOUR Institut National d ’Informatique
Projet de Fin d’Etudes – Optimisation SSE 1/28. 1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion 2/28 Projet de Fin.
Introduction aux solutions Microsoft pour le HPC.
Optimisation pour la Conception de Systèmes Embarqués
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Romain Dupont encadré par J.Aubourg et P. Fuchs
Réunion ANR - GCPMF 15/01/2008 Xavier WARIN (EDF R&D - OSIRIS)‏ Stéphane VIALLE (SUPELEC - IMS)‏ Constantinos MAKASSIKIS (SUPELEC - IMS, LORIA - AlGorille)‏
L’arrivée des versions parallèles des modèles de l’IPSL Adapter les codes aux architectures multiprocesseurs des futures machines afin d’améliorer les.
Création et Optimisation de Modules Audio avec les instructions SSE
Sciences Mécaniques Appliquées
PetaSky: Expérimentations avec HadoopDB et Hive 1 Amin Mesmoudi.
GdR MoMaS Novembre 2003 Conditions d’interface optimales algébriques pour la vibro-élasticité. François-Xavier Roux (ONERA) Laurent Sériès (ONERA) Yacine.
Novembre 2003 Simulation numérique en vibro-acoustique par couplage de deux codes parallèles Unité de Recherche Calcul à Haute Performance François-Xavier.
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

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)… Algorithme de calcul numérique intensif en virgule flottante, régulier. Exemple : extraction de contours  démo

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

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

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

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

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…)

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

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

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

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

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

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

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

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é)

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

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

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

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

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…)

L’algorithme CNFT Version Cluster MPI

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

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

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

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

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

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

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

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 :

Parallélisation d’un Algorithme CNFT                    Questions ?