Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Amina 2010 workshop slides final version

1,738 views

Published on

Published in: Education
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Amina 2010 workshop slides final version

  1. 1. Andreea Dicu Alexandra Musat Carmen Neghina Psycho-economics Psychology Ateliers Pratiques Programmation parallèle Prof. Mohamed AKIL & Ramzi MAHMOUDI AMINA Workshop 2010
  2. 2. Agenda 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 2 Introduction Parallélisez – un vrai besoin Parallélisez – une démarche organisée Mise en pratique
  3. 3. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 3 Introduction La première question à se poser, c'est savoir si la parallélisation de l'application est nécessaire ? Écrire un logiciel séquentiel est déjà du travail, souvent difficile : la parallélisation le rendra encore plus dur. Il y a eu beaucoup de progrès du matériel informatique (processeurs de 3.7 GHz etc.) Pourtant il existe toujours des applications scientifiques qui consomment "trop" de ressources en temps : calculs (processeur) et cycles d’accès mémoire Pour celles-ci, la seule solution, pour des raisons techniques ou économiques, reste la ‘parallélisation’
  4. 4. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 4 Parallélisez – un vrai besoin Multi-tâches : Calcul distribué : Performance de calcul: Calcul parallèle est Omniprésent - Augmenter la performance lors de l’affectation de tâches distinctes pour répondre à des événements non-déterministes - Les applications interactives exigent de ‘faire beaucoup de choses en parallèle’ - Aujourd'hui, la plupart des processeurs offrent de l'exécution en parallèle (‘multi-core’) - Le calcul est intrinsèquement distribués parce que l'information est distribuée - Exemple : gestion d'une entreprise ou de banque à l'échelle internationale (word-wide company) - Les questions : la communication entre les plates-formes, la portabilité et la sécurité. - Toutes les techniques implémentées aujourd'hui dans nos machines de bureau ont été développés dans les supercalculateurs de plusieurs depuis des années - Les application de simulation sur des superordinateurs sont principalement numériques - Les grands défis : la cosmologie, le repliement des protéines, l’imagerie médicale, la prédiction des tremblements de terre, le climat ... mais aussi : la simulation des armes nucléaires
  5. 5. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 5 Parallélisez – une démarche organisée Ecrire un algorithme parallèle 1 Injecter du parallélisme 2 Evaluer les performances 3 Optimiser 4
  6. 6. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 6 Ecrire un algorithme parallèle Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 L'algorithmique parallèle emprunte beaucoup à l'algorithmique classique dans sa problématique: conception, analyse, étude de la complexité. Les résultats sont quelquefois moins précis, car les problèmes sont plus récents, et aussi plus difficiles. Fondamentalement, il y a quand même une nouvelle dimension, un degré de liberté supplémentaire avec l'exploitation simultanée de plusieurs ressources. Algorithmes - Produits 2 mat. - Décomposition LU Analyses - complexité - Scalabilité les facteurs qui limitent l'efficacité (déséquilibrage de charge, coût des communications, inactivité forcée due aux dépendances) Mapper efficament (adapter – Adéquation Algorithme Architecture) l’algorithme sur l’architecture un anneau Une grille 2D Un hypercube Une grappe de processeurs
  7. 7. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 7 Ecrire un algorithme parallèle Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Une topologie simple ( anneau de processeurs ) permet de concevoir et d'écrire des algorithmes parallèles, sans rien connaître aux architectures de machines. ( communications globales, produit matrice-vecteur …) 11 Les réseaux d'interconnexion, les mécanismes de routage : Prendre en considération les propriétés topologiques du réseau ( cas de l'hypercube diffère des grilles toriques 2D de processeurs.) 22 Équilibrage de charge pour plate-forme hétérogène (ou homogène) . Autant l'équilibrage de charge 1D reste facile, autant l'équilibrage de charge 2D s'avère complexe. 33
  8. 8. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 8 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Comprendre son application Maitriser les concepts de parallélisme Choisir API de threading 70% 20% 10%
  9. 9. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 9 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Avantages a. Meilleures performances - Une façon simple de tirer profit du multi-core. b. Meilleure utilisation des ressources - Réduit les temps d'attente, même sur des systèmes multi processeurs. c. Partage des données efficace - Il est plus facile de partager des données via l'accès direct à la mémoire que recourir aux changes de messages Risques a. L'application est plus complexe b. Le débogage est difficile (conflits d'accès aux données, verrouillages…) Pourquoi des threads ?
  10. 10. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 10 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Les OS modernes chargent les programmes sous forme de process (Gestion ressources / Exécution …) Un process démarre depuis un point d'entrée sous forme d'un thread Un thread peut créer par d'autres threads dans le contexte du même process : (Chaque thread dispose de sa propre pile) Tous les threads à l'intérieur d'un même process partagent les segments de code et de données. Segment code Segment données Process vs threads ? Pile thread main() Pile thread main() Pile thread main()
  11. 11. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 11 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 • Simultanéité : deux threads ou plus sont actifs à un instant donné (peuvent tourner sur un monocore) • Parallélisme : deux threads ou plus tournent à un instant donné (multicore obligatoire) Simultanéité vs Parallélisme ? T1 T2 T1 T2
  12. 12. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 12 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Threading pour des fonctionnalités Attribuer les threads aux différentes fonctions de l'application • Méthode la plus facile car les chevauchements sont peu probables • Mais il pourrait y avoir des problèmes de séquencement Exemple: construire une maison Maçon, menuisier, couvreur, plombier,…
  13. 13. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 13 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Dans la vie quotidienne, de nombreux exemples : a. Chaine de montage automobile : chaque ouvrier effectue une tâche qui lui est attribuée b. Recherche de morceaux de Skylab : diviser la zone de recherches c. Caisses de grandes surfaces : plusieurs caisses fonctionnent en parallèle Threading pour les performances? Améliorer les performances des calculs !! Améliorer la flexibilité ou le flux !!
  14. 14. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 14 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Effectuer des tâches élémentaires le plus rapidement possible Exemple : mise en place d'une table dans un restaurant Un pour les assiettes Un pour plier et poser les serviettes Un pour les couverts Un pour les verres Flexibilité ?
  15. 15. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 15 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Terminer un maximum de tâches dans un même lapse de temps : plusieurs solutions – il faut tester pour trouver la meilleure. Exemple : mise en place des tables d'un banquet Plusieurs serveurs, un par table Serveurs spécialisés pour la vaisselle, les couverts, les verres, etc. Volume ?
  16. 16. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 16 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☻Bas niveau - WinThreads et Posix ☺Encapsulation – OpenMP et Thread Building Blocks ☻Cas special clustering - MPI (Message Passing Interface) Les API de parallélisation
  17. 17. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 17 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 OpenMP – un choix judicieux Mise en œuvre rapide – Encapsulation de threading à base de pragmas de compilation en C++ et directives en Fortran ‘Désactivable’ – Donc l'application peut tourner en mono-thread sans difficulté de mise en œuvre Encapsule – la mécanique de bas niveau Portable – C++ et Fortran ainsi que Windows, Linux et Mac Gratuit
  18. 18. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 18 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Objectifs 1. Comprendre comment paralléliser une application avec des directives OpenMP de base 2. Utiliser la synchronization OpenMP pour coordonner l'exécution des threads et les accès à la mémoire
  19. 19. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 19 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Directives de compilation pour la programmation multithread ☺Sa mise en œuvre est facile en Fortran et C/C++ ☺Support des modèles de parallélisation de données ☺Parallélisation incrémentale ☺Regroupe le fonctionnement série et parallèle dans une seule source Qu’est-ce qu’OpenMP ?
  20. 20. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 20 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 www.openmp.org www.openmp.fr.nf
  21. 21. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 21 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Parallélisme par séparation-regroupement : a. Le Thread maître engendre un jeu de threads selon les besoins b. Le parallélisme est ajouté d'une façon incrémentale: le programme séquentiel se transforme progressivement en programme parallèle Modèle de programmation avec OpenMP? Thread maitre Région parallèle
  22. 22. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 22 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 La plupart des commandes OpenMP se présente sous forme de directives ou pragmas. Pour C et C++, les pragmas prennent la forme suivante : #pragma omp directives [clause [clause]…]#pragma omp directives [clause [clause]…] Syntaxe des pragma OpenMP
  23. 23. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 23 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Une région parallèle est définie sur plusieurs blocs de code structuré. ☺Les threads son créés ‘parallel’. ☺Les threads bloquent en fin de région. ☺Les données sont partagées par les threads à moins que cela ne soit spécifié autrement. #pragma omp parallel Thread 1 Thread 2 Thread 3 (C/C++) #pragma omp parallel { Bloc à paralléliser } Région parallèles
  24. 24. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 24 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Définir la variable d'environnement pour le nombre de threads set OMP_NUM_THREADS = 2set OMP_NUM_THREADS = 2 ☺Il n'y a pas de valeurs standard par défaut. ☺Sur beaucoup de systèmes : # de threads = # de processeurs ☺Les compilateurs Intel utilisent ceci par défaut Combien de threads ?
  25. 25. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 25 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 #pragma omp parallel #pragma omp for i=1 i=2 i=3 i=4 i=1 i=2 i=3 i=4 i=9 i=10 i=11 i=12 i=9 i=10 i=11 i=12 i=5 i=6 i=7 i=8 i=5 i=6 i=7 i=8 Barrière implicite #pragma omp parallel #pragma omp for for(i = 1, i <= 12, i++) c[i] = a[i] + b[i] ☺Partager les itérations de la boucle entre les threads. ☺Doit se trouver dans la région parallèle ☺Doit précéder la boucle ☺Les threads se voient attribués un ensemble indépendant d'itérations ☺Les threads doivent attendre la fin du partage de travail Partage des tâches
  26. 26. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 26 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Ces deux segments de code sont équivalents Combiner les pragmas #pragma omp parallel #pragma omp for for(i = 1, i <= max, i++) res[i] = huge(); #pragma omp parallel for for(i = 1, i <= max, i++) res[i] = huge();
  27. 27. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 27 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 OpenMP utilise un modèle de mémoire partagée ☺Avec un système à mémoire partagée, on a la possibilité d'utiliser OpenMP comme moyen de parallélisation. ☺Un programme parallèle consiste alors en un groupe de fils d'exécution (threads). ☺Ces fils d'exécution partageront le même espace d'adressage dans la mémoire. ☺Les variables globales sont partagées par les threads (C/C++: Variables globales, static) Environnement de données
  28. 28. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 28 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Mais TOUT n'est pas partagé... ☺Les variables sur la pile dans des fonctions appelées dans des régions parallèles sont PRIVATE ☺Les variables automatiques dans une phrase sont PRIVATE ☺Les indices de boucles sont PRIVATE mais il existe des exceptions ☺C/C+: L'indice de la première boucle dans des boucles imbriquées suite à une #pragma omp for est PRIVATE alors que les indices des boucles imbriquées sont partagés. Environnement de données
  29. 29. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 29 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Attributs de portée de données Le statut par défaut peut être modifié avec : ☺Clause d'attributs de portée partagée par défaut ☺Définition des variables partagées ☺Définition des variables privées Default (shared | none)Default (shared | none) Shared (varname,…)Shared (varname,…) Private (varname,…)Private (varname,…)
  30. 30. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 30 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 La clause private Reproduit les variables pour chaque thread : ☺Les variables sont non-initialisées; les objets C++ sont construits par défaut ☺Toute valeur en dehors de la région parallèle est indéfinie. void* work(float* c, int N) { float x y; int i; #pragma omp parallel for private(x,y) for(i=0; i<N; i++) { x = a[i]; y = b[i]; c[i] = x + y; } } ACCES INTERDIT AUX THREADS NON AUTORISES
  31. 31. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 31 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 La clause shared ☺Définit explicitement les variables dont les données seront partagées par tous les threads. ☺En définissant une variable comme étant SHARED (partagée), vous garantissez que chaque thread peut utiliser la variable, pas nécessairement en toute sécurité. ☺Les variables sont partagées par défaut. void* work(float* c, int N) { float x, y; int k = calculK(N); #pragma omp parallel for private(x,y) shared(k) for(int i=0; i<N; i++) { x = a[i]; y = b[i]; c[i] = x + y + k; } } C[] est partagé par défaut mais il y a un risque de conflit
  32. 32. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 32 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Exemple : produit vectoriel float point_produit (float* a, float* b, int N) { float sum = 0.0; #pragma omp parallel for shared(sum) for(int i=0; i<N; i++) { sum += a[i] * b[i] } return sum } Qu’est ce qui ne va pas ?
  33. 33. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 33 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Protéger les données partagées float point_produit (float* a, float* b, int N) { float sum = 0.0; #pragma omp parallel for shared(sum) for(int i=0; i<N; i++) { #pragma omp critical sum += a[i] * b[i]; } return sum; } Il est impératif de protéger l’accès aux données partagées
  34. 34. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 34 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Chaque thread attend son tour, un seul appel consum() ce qui protége RES de conflits d'accès. ☺Le fait de nommer la zone critique RES_lock est optionnel La clause OpenMP Critical float RES; #pragma omp parallel { float B; #pragma omp for for(int i=0; i<niters; i++) { B = big_job(i); #pragma omp critical (RES_lock) consum (B, RES); } } #pragma omp critical [(lock_name)]#pragma omp critical [(lock_name)] Définit une zone critique dans un bloc structuréDéfinit une zone critique dans un bloc structuré
  35. 35. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 35 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Les variables dans “list” doivent être partagées dans la zone parallèle ☺A l'intérieur de zones parallèles ou de partage de travail : ░ Une copie privée de chaque variable dans la liste est crée et initialisée selon la nature de “op” ░ Ces copies sont mises à jour localement par le thread ░ En sortie de la zone concernée par la clause, les copies sont regroupées en une seule valeur via "op" et combinées avec la variable partagée. La clause OpenMP Reduction reduction (op : list)reduction (op : list)
  36. 36. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 36 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Un copie locale de somme pour chaque thread ☺Toutes les copies locales de somme son regroupées puis stockées dans une variable “globale” Exemple de Reduction #pragma omp parallel for reduction(+:somme) for(i=0; i<N; i++) { somme += a[i] * b[i]; }
  37. 37. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 37 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 ☺Des sections de code indépendantes peuvent s'exécuter en parallèle Sections parallèles #pragma omp parallel sections { #pragma omp section phase1(); #pragma omp section phase2(); #pragma omp section phase3(); } Série Parallèle Section1 Section2 Section3
  38. 38. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 38 Injecter du parallélisme Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Il reste beaucoup de chose à découvrir !
  39. 39. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 39 Applications
  40. 40. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 40 Evaluer les performances Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Outils d’évaluation des performances ☻Déterminer le temps nécessaire pour exécuter chaque partie (procédure, fonction, bloc) du code ☻Déterminer les sections critiques du code (sections qui posent problème) ☻Pour analyser un code : ░ Rapport ou listing des compilateurs ░ Profiling (timers & profilers) ░ Hardware performance counters
  41. 41. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 41 Evaluer les performances Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Rapport et listing des compilateurs ☻ Les compilateurs peuvent générer éventuellement des rapports d'optimisation et la liste des fichiers. ☻Utilisez le « Loader Map » pour déterminer les bibliothèques chargées IA32/EM64T: – <compiler> -opt-report {optimization, (Intel)} – <compiler> -S {listing (Intel)}
  42. 42. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 42 Evaluer les performances Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Profiling : classification des analyses Informations : Trace file (raw) Timeline ( état de thread / process, communication, événement utilisateur prédéfinit) Outils : Trace generateur API instrumentation Outils pour lire / interpréter les trace files et visualiser Informations : Wall clock / CPU : temps passé en chaque fonction. HW counters : Caches misses, nombre d’instructions FLOPS … Outils : Timers Profilers Profile visualiser API to read/display HW counters info.
  43. 43. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 43 Evaluer les performances Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Timers ☻time : $ gcc test.c -o testout $ time ./testout Le résultat de testout ….. real 0m0.122s user 0m0.110s sys 0m0.010s Routine Type Résolution OS / compi. times user/sys 1000 Linux/AIX IRIX/UNICOS getrusage wall/user/sys 1000 Linux/AIX/IRIX gettimeofday wall clock 1 Linux/AIX IRIX/UNICOS rdtsc wall clock 0.1 Linux read_real_time wall clock 0.001 AIX system_clock wall clock (System) Fortran 90 Intrinsic system_clock wall clock (System) MPI Library (C &Fortran)
  44. 44. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 44 Evaluer les performances Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Profilers $ gcc -pg test.c -o testout $ ./testout $ gprof ./testout | less % cumulative self self total time seconds seconds calls us/call us/call name 100.00 0.05 0.05 1 50000.00 50000.00 calcul 0.00 0.05 0.00 1 0.00 0.00 affiche 0.00 0.05 0.00 1 0.00 50000.00 main Gprof (+ Kprof) Bprof Tprof … OUTILS DE BASE
  45. 45. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 45 Evaluer les performances Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 Profilers Valgrind (+Kcachegrind) Intel Parallel Studio Vtune Analyser … OUTILS AVANCES Thread profiler tchecke r
  46. 46. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 46 Optimiser Step 1Step 1 Step 2Step 2 Step 3Step 3 Step 4Step 4 « L’optimisation prématurée est la source de tout les maux » Donald Knuth Niveau algorithmique (diminuer l’ordre de complexité , structure de données adaptée…) Niveau langage de développement (réorganisation du code, boucle, section critique, partage …) Niveau assembleur (intégration instructions MMX, SSE4 …) …
  47. 47. 01/30/15 M. AKIL & R. MAHMOUDI - AMINA Workshop 47 Quelque chose pour vous ouvrir l’appétit … Questions? Idées? Applaudissement?
  48. 48. Andreea Dicu Alexandra Musat Carmen Neghina Psycho-economics Psychology Merci pour votre attention Prof. Mohamed AKIL & Ramzi MAHMOUDI AMINA Workshop 2010

×