1 / 26

Méthodes de parallélisation d’algorithmes

Méthodes de parallélisation d’algorithmes. ALPHA BOUBACAR DIALLO. Étudiant au Doctorat en Informatique diallo.alphaboubacar@gmail.com. Ordre du jour. Problématique et quelques définitions Architectures parallèles Environnements parallèles Programmes parallélisés Futures avenues.

Télécharger la présentation

Méthodes de parallélisation d’algorithmes

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. Méthodes de parallélisation d’algorithmes ALPHA BOUBACAR DIALLO Étudiant au Doctorat en Informatique diallo.alphaboubacar@gmail.com

  2. Ordre du jour Problématique et quelques définitions Architectures parallèles Environnements parallèles Programmes parallélisés Futures avenues

  3. Problématique Taille des problèmes à résoudre Accélération de la résolution Prix…

  4. Définitions de base CPU ( Central Process Unit) Unité centrale de calcul GPU ( Graphic Process Unit) Unité graphique de calcul

  5. Définitions de base Programme séquentiel: définit une séquence d’actions ( instructions) Programme parallèle: contient plusieurs processus qui coopèrent Système parallèle: dispose d’au moins 2 CPU ( Unité de calcul)

  6. Parallélisme Conditions du parallélisme: « Soit P1 et P2 deux programmes; on suppose que chacun des programmes utilisent des variables en entrée (E1 et E2) et produit des valeurs en sortie (S1 et S2). Les programmes P1 et P2 sont exécutables en parallèle (noté P1 | | P2) si et seulement si les conditions suivantes sont respectées : E1 ∩ S2 = Ø, E2 ∩ S1 = Ø et S1 ∩ S2 = Ø.  » Philip Bernstein

  7. Formes du parallélisme Parallélisme de données même opération effectuée par des processeurs différents sur des ensembles disjoints de données Parallélisme de contrôle différentes opérations indépendantes sont réalisées simultanément Parallélisme de flux l’opération suivante est amorcée avant que la précédente ne soit terminée

  8. Architectures paralléles La classification de Flynn en 1972 La classification de Hockney en 1987 La classification de Treleaven en 1988 La classification de Skillicorn en 1988 La classification de Krishnamurthy en 1989 La classification de Duncan en 1990 La classification de Germain-Renaud en 1991 La classification d’Ibett en 1992 La classification d’Esclangon en 1992

  9. FLYNN SISD un seul flot d’instructions opère sur un même flot de données.

  10. FLYNN SIMD un seul flot d’instructions opère sur un ensemble disjoint de données.

  11. FLYNN MISD Plusieurs flots d’instructions opèrent sur un même flot de données.

  12. FLYNN MIMD Plusieurs flots d’instructions opèrent sur ensemble de données indépendants.

  13. Méthodepar laquelle les données de la mémoire d’un CPU sont copiées dans la mémoire d’un autre CPU Environnements parallèles MPI (Message Passing Interface) Librairie standard de passage de messages CUDA (Compute Unified Device Arch.) nouvelle architecture (logicielle et matérielle) pour la mise en œuvre et la gestion des opérations exécutées sur le GPU Processeur graphique

  14. Message Passing Interface MPI résulte des efforts de nombreux groupes d’individus entre les années 1992 et 1994. En avril 1992, sponsorisation d’un atelier sur les standards de passage de messages. En novembre 1992, présentation de la version MPI-1 et création du premier forum MPI. En novembre 1993 MPI standard fut dévoilé. En mai 1994 une version finale disponible.

  15. Compute Unified Device Architecture 1 Milliard d’opérations à virgule flottante par seconde Le GPU était programmé seulement à travers une API graphique. Application Programming Interface

  16. CPU (host) GPU

  17. GeForce 8800 GTX

  18. CUDA

  19. // includes, project #include <cutil.h> // Matrix multiplication on the device void MatrixMulOnDevice(const Matrix M, const Matrix N, Matrix P) { // Load M and N to the device Matrix Md = AllocateDeviceMatrix(M); CopyToDeviceMatrix(Md, M); Matrix Nd = AllocateDeviceMatrix(N); CopyToDeviceMatrix(Nd, N); // Allocate P on the device Matrix Pd = AllocateDeviceMatrix(P); CopyToDeviceMatrix(Pd, P); // Clear memory

  20. // Setup the execution configuration dim3 dimBlock(WIDTH, WIDTH); dim3 dimGrid(1, 1); // Launch the device computation threads! MatrixMulKernel<<<dimGrid, dimBlock>>> (Md, Nd, Pd); // Read P from the device CopyFromDeviceMatrix(P, Pd); // Free device matrices FreeDeviceMatrix(Md); FreeDeviceMatrix(Nd); FreeDeviceMatrix(Pd); }

  21. Architecture Uquamienne www.trex.uqam.ca

  22. Algorithmes parallélisés Reconstruction basée sur les méthodes de distances Neighbor Joining – Saitou and Nei (1987) ADDTREE – Sattath and Tversky (1977) Unweighted Neighbor Joining – Gascuel (1997) Circuluar order recontruction – Makarenkov and Leclerc (1997) Weighted least-squares method MW- Makarenkov and Leclerc (1999) Reconstruction basée sur la parcimonie Reconstruction basée sur le maximum de vraisemblance

  23. Neighbor Joining O(n3)

  24. ADDTREE O(n5)

  25. Futures avenues MPI un standard ??? ClustalW-MPI, MPI-Blast, … Automatisation du processus de parallélisation Projet de doctorat… AMD-ATI AMD FireStream 9170 (Stream Processor)

  26. Questions

More Related