1 / 18

Programation Parallèle et Distribuée

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

syshe
Download Presentation

Programation Parallèle et Distribuée

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. Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado

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

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

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

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

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

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

  8. Complexité L’algorithme s’exécute en log2 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])

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

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

  11. Exemple – Calcul du Maximum On recherche maxi (T (i)). On utilise une machine à n2 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]

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

  13. Autre Exemple Recherche de l’appartenance d’une valeur e à une suite d’éléments distincts (ei )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

  14. Autre Exemple – Complexité CREW : les ei é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 ...

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

  16. 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 Cseq la complexité du meilleur algorithme séquentiel connu pour le résoudre. Definition Le facteur d’accélération est le rapport : Cseq / C Definition L’efficacité d’un algorithme PRAM sur n processeurs est d´efinie par eff = Cseq / n * C

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

More Related