La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado."— Transcription de la présentation:

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

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

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 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])

9 Exercice Calculer les sommes partielles de la suite d’entiers (t i ) 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 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]

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

13 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

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

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

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.

18


Télécharger ppt "Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado."

Présentations similaires


Annonces Google