Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado.

Slides:



Advertisements
Présentations similaires
Tris.
Advertisements

Chapitre annexe. Récursivité
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Sémantique des déclarations pour le langage Z minimal
Calculs de complexité d'algorithmes
Plan : Définition L’affectation Les entrées Les sorties exercices
Les Structures de contrôles itératives
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
C.
Plan Présentation de la Solution. Le Protocole MESI
Connaissances Logiciel de géométrie dynamique Epreuve Expérimentale Série S 2007/08.
Paramètres et pointeurs
Section VIII Modularité Partie II
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Section VI Structures répétitives (suite)
Les éléments de base de l’algorithmique
Analyse des algorithmes: une introduction
ALGORITHMIQUE en classe de seconde
Standard Template Library (STL)
Fonction exponentielle: enchaînement de théorèmes
FICHIERS : Définition : Algorithme général:
Structures de données IFT-2000
Principes de programmation (suite)
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Standard Template Library
Algorithmique et langage C. Les traitements Comment utiliser les données.
Structures de données IFT-2000
L’adaptativité pour un solveur de l’équation de Vlasov
Utilisation calculatrice Auchan SC-05 PLUS en statistique
Analyse d’algorithmes
Structures de données IFT-2000
Systèmes d’exploitation
Python Fonction et procédure
Animateur : Med HAIJOUBI
Le langage C Structures de données
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Logique programmée & Microprocesseurs
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
David Rivreau Table de hachage David Rivreau
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Algorithmes de tri et de recherche
Cours d’ Algorithmique 2012 Algorithmique. Cours d’ Algorithmique 2012 Qu’est ce que l’Algorithmique ? Avez-vous déjà suivi une recette ? Avez-vous déjà.
Algorithmique et langage C. Et me la renvoyer bien sûr… Developpez.com, wiki, siteduzero et autre sont les bienvenus… (les questions sont en orange) C’est.
Décomposition et paramétrage des algorithmes
Multiprécision.
Un survol du language C.
Labo 4 : Les structures et les entrées et sorties
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Travaux Pratiques de Physique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Bureautique M1 Publipostage.
D.E ZEGOUR Ecole Supérieure d’Informatique
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Pour les boucles FOR on a fait intervenir la boucles TANT QUE équivalentes dont on connaît calculer le temps d’exécution. Toutes le procédures de comptage.
Architecture et technologie des ordinateurs II
Algorithmique Tableaux de données
Algorithmique Boucles et Itérations
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Transcription de la présentation:

Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado

Machines PRAM Parallel Random Access Machine Il s’agit d’une “machine parallèle abstraite” – Un suite d’instructions à effectuer – Un pointeur d’instruction – Une mémoire partagée – Une suite (non bornée) de processeurs (parallèles)

Communication Elle se fait via la mémoire partagée: – Le coût d’accès à une emplacement mémoire est contstant – Modes d’accès EREW (exclusive read exclusive write) CREW (concurrent read exclusive write) CRCW (concurrent read concurrent write) – Mode arbitraire – Mode consistant – Mode assiciation

Eléments du langage de Programation Pseudo-langege simple conditioinnels, boucles, tableaux. Toutes les variables sont partagées par défaut. Itérateur parallèle pourchaque proc i enparallele Pourchaque proc i enparallele { x[i] = 2*i }

Remarques Sémantiques Les instrutions peuvent donc être paramétrées par i, le numéro du processeur. Une boucle parallèle Pour chaque proc i en parallele x[i] = y [i] Est réalisée en effectuant (en parallèle)d’abord toutes les lectures, puis tout les écritures.

Technique de Saut de Pointeur Problème Générique : Soit (x i ) i une suite (finie) de nombres, ⊗ une opération associative. Comment calculer en parallèle la suite (y i ) i définie par récurrence : – y 1 = x 1 – y k = y k−1 ⊗ xk On va utiliser une PRAM avec autant de processeurs que de valeurs dans nos suites, et la technique du saut de pointeur.

Algorithme Parallèle pourchaque proc i en parallele { y[i] = x[i] tantque ( il existe proc i tq next[i] != NULL ) { si ( next[i] != NULL ) { y[next[i]] = op(y[i], y[next[i]]) next[i] = next[next[i]] // saut de pointeur }

Complexité L’algorithme s’exécute en log 2 n itérations : CREW : temps logarithmique EREW : aussi logarithmqiue en transformant y[next[i]] = op(y[i], y[next[i]]) en temp[i] = y[next[i]]) y[next[i]] = op(y[i],temp[i])

Exercice Calculer les sommes partielles de la suite d’entiers (t i ) i.

Comparaisons des PRAMs Pour pouvoir mieux choisir il est important de comparer les différents modèles en termes de Calculabilité Complexité

Exemple – Calcul du Maximum On recherche max i (T (i)). On utilise une machine à n 2 processeurs. Chaque processeur (i, j) accèdera à T [i] et T [j]. On utilise de plus un tableau de booléen auxiliaire m(i). pourchaque 1 < i < n en parallele m[i]=TRUE pourchaque 1< i, j<n en parallele if ( T[i] < T[j]) m[i] = FALSE pourchaque 1 < i < n en parallele if ( m[i] = TRUE ) max = T[i]

Exemple – Complexité CRCW (mode consistant) : constant CREW et EREW : log 2 n Les accès concurrents sur une valeur par n processeurs ne peuvent se faire qu’en log 2 n étapes.

Autre Exemple Recherche de l’appartenance d’une valeur e à une suite d’éléments distincts (e i ) i. L’algorithme suivant résoud le problème en temps constant sur une PRAM à n processeurs. Le processeur i accède à e[i]. res = FALSE pourchaque 0 < i < n en parallele si ( e[i] == e ) res = TRUE

Autre Exemple – Complexité CREW : les e i étant distincts, une seule écriture se fera éventuellement sur res. EREW : la valeur de e doit être dupliqué n fois. Au mieux log n étapes par dichotomie...

Comparaison des Modèles Les modèles EREW, CREW er CRCW ne sont donc pas équivalents. Peut-on mieux les comparer, les hiérarchiser ?

Complexité et Efficacité Definition La complexité C d’un algorithme PRAM est le nombre d’étapes (parallèles) nécessaires à son exécution. NB. Cette complexité dépend de la taille de l’entrée et du nombre de processeurs. Etant donné un problème, on note C seq la complexité du meilleur algorithme séquentiel connu pour le résoudre. Definition Le facteur d’accélération est le rapport : C seq / C Definition L’efficacité d’un algorithme PRAM sur n processeurs est d´efinie par eff = C seq / n * C

Théeorèmes de comparaison Theorem Tout algorithme sur une machine PRAM CRCW mode consistant `a p processeurs ne peut être O(log n) fois plus rapide que le meilleur algorithme (pour le même problème) sur une machine EREW `a p processeurs.