Algorithmes parallèles cours pour la 2eme année master informatique fondamentale 2012/2013
Objectif du cours dans la plus parts des cas Le calcule parallèle est un moyen de réduire le temps d’exécution des applications qui nécessitent une grande quantité de calcul. La conception et l’implémentation d’un algorithme parallèle est plus difficiles que celle d'un algorithme séquentiel. L'objectif du cours est de donner à l'étudiant le savoir et les techniques pour concevoir un algorithme parallèle sur une architecture parallèle cible.
Plan du cours Introduction Notions sur les architectures parallèles motivations Définitions Notions sur les architectures parallèles classification Modèles de programmation parallèle Applications Exemple
introduction
Motivations Limites théoriques et réels des architectures traditionnelles. Minimisation du temps d'exécution des applications. Résoudre des nouveaux problèmes, des nouvelles instances des problèmes. Exploitation des plateformes déjà existant Accroitre la cohérences des systèmes
Définitions le calcul parallèle est l'utilisation simultanée des ressources multiples de calcul (processeurs) pour résoudre un problème informatique. Un calculateur parallèle est un ensemble des processeurs qui peuvent travailler d’une façon coopérative pour résoudre un problème informatique. Cette définition est assez large pour inclure les : supers calculateurs machines avec unité centrale multiprocesseurs réseaux des postes de travail, ensemble des ordinateurs relies avec un lien spécialisé ou avec un simple réseau.
Un programme parallèle est un programme qui s’exécute sur un calculateur parallèle, Un ensemble des parties discrètes qui peuvent être exécutées concurremment. Chaque partie est une série d'instructions.
Expression des algorithmes parallèles Si plusieurs étapes doivent se faire en parallèle Faire étapes i à j en parallèle étape i ; … étape j ; Fin Faire Si plusieurs processeurs doivent exécuter le même type d’opérations en même temps Pour i de j à k faire en parallèle { opérations exécutées par le processeur Pi } Fin Pour On utilise un langage de description algorithmique étendu pour décrire des opérations parallèles.
L’accélération et L’efficacité Considérons un algorithme qui s’exécute sur un ordinateur parallèle comportant p processeurs (identiques) dans un temps Tp, et soit Ts son temps d’exécution séquentiel. L’accélération est définie par le rapport: Sp = Ts/Tp Généralement on a : 1 ≤ Sp ≤ p L’efficacité d’un algorithme parallèle est le rapport Ep = Sp/p
Exemple I On a un maçon qui peut construire un mûre dans un temps Ts. Si n maçons veulent construire le même mûre dans un temps Tp, donc : Tp = ..? Sp=..? Tp=Ts/n * Sp=Ts/(Ts/n) si Ts=1 *Sp=n
Expmple II Supposant qu'on a une chaine de réassemblage ou la production de chaque unité nécessite 04 taches. T est le temps nécessaire accomplir une tache par un employé. Si on veut produire 10 unîtes. Tw =..? (pour 01 employé). TL= ..? (pour 04 employés). Sp=….? Tw=04*T*10 *TL=04*T+(10-1)*T **Sp=40T/13T
Exemple II suite Si on a K unîtes, donc Tw=….? Tl=……? Sp=….? Si le nombre des unités est grand le Sp 04 On peut conclure que sur une chaine de construction de n postes le Sp est pratiquememt n